随笔分类 - 软件测试52讲
摘要:LoadRunner 的基本原理 后端性能测试工具首先通过虚拟用户脚本生成器生成基于协议的虚拟用户脚本,然后根据性能测试场景设计的要求,通过压力控制器控制协调各个压力产生器以并发的方式执行虚拟用户脚本,并且在测试执行过程中,通过系统监控器收集各种性能指标以及系统资源占用率,最后通过测试结果分析器展示
阅读全文
摘要:WebPagetest 功能简介 WebPagetest,是前端性能测试的利器: 可以为我们提供全方位的量化指标,包括页面的加载时间、首字节时间、渲染开始时间、最早页面可交互时间、页面中各种资源的字节数、后端请求数量等一系列数据; 还可以自动给出被测页面性能优化水平的评价指标,告诉我们哪些部分的性能
阅读全文
摘要:后端性能测试和后端性能测试工具之间的关系是什么? 后端性能测试工具 != 后端性能测试 完整的后端性能测试应该包括性能需求获取、性能场景设计、性能测试脚本开发、性能场景实现、性能测试执行、性能结果报告分析、性能优化和再验证。 在这其中,后端性能测试工具主要在性能测试脚本开发、性能场景实现、性能测试执
阅读全文
摘要:并发用户数、响应时间、系统吞吐量之间的关系 空闲区间-线性增长区间-拐点-过饱和区间 | 阶段 | 并发用户数 | 响应时间 | 系统吞吐量 | | | | | | | 空闲区间 | 并发用户少 |响应时间短 |系统吞吐量低| | 线性增长区间 | 并发用户增多 |响应时间增加不多 |系统的吞吐量随
阅读全文
摘要:衡量软件性能的四个维度 对同一个系统来说,不同的对象群体对软件性能的关注点和期望也不完全相同,甚至很多时候是对立的。 终端用户眼中的软件性能 软件性能表现为用户进行业务操作时的主观响应时间。具体来讲就是,从用户在界面上完成一个操作开始,到系统把本次操作的结果以用户能察觉的方式展现出来的全部时间。包括
阅读全文
摘要:自动动态方法并不能理解代码逻辑,所以仅仅被用于发现异常、崩溃和超时这类“有特征”的错误,而对于代码逻辑功能的测试,主要还是要依靠人工动态方法。 人工动态方法 人工动态测试方式,是最常用的代码级测试方法,也是我们在进行单元测试时采用的方法。 单元测试用例“输入参数”的复杂性 如果你认为单元测试的输入参
阅读全文
摘要:人工静态方法 代码走查(Code Review),是由开发人员检查自己的代码,尽可能多地发现各类潜在错误。但是,由于个人能力的差异,以及开发人员的“思维惯性”,很多错误并不能在这个阶段被及时发现。 结对编程(Pair Programming),是一种敏捷软件开发的方法,一般是由两个开发人员结成对子在
阅读全文
摘要:通常情况下,代码级测试的工作都是由开发人员完成,但是测试框架选型、覆盖率统计工具选型、测试用例设计原则等都需要资深的测试工程师或者测试架构师参与。 代码级测试的测试方法一定是一套测试方法的集合,而不是一个测试方法。 常见代码错误类型 代码错误,可以分为“有特征”的错误和“无特征”的错误两大类。“有特
阅读全文
摘要:为了掌握微服务模式下的 API 测试,你需要先了解微服务架构(Microservice Architecture)的特点、测试挑战;而要了解微服务架构,你又需要先了解一些单体架构(Monolithic Architecture)的知识。 单体架构(Monolithic Architecture) 单
阅读全文
摘要:聊聊 API 自动化测试框架的前世今生 早期的基于 Postman 的 API 测试 特点:基于界面操作 存在问题: 当需要频繁执行大量的测试用例时,基于界面的 API 测试就显得有些笨拙;(效率低下) 基于界面操作的测试难以与 CI/CD 流水线集成。(无法集成) 基于 Postman 和 New
阅读全文
摘要:以ios为例。 iOS 环境搭建 首先,下载安装 Xcode; 然后,在 Xcode 中下载 iOS 的模拟器; 接着,使用 Xcode 编译打包被测试 App; 最后,在 iOS 的模拟器中尝试手工执行这两个测试用例。 Appium 测试环境搭建 其实自己可百度解决。 Appium Inspect
阅读全文
摘要:无论是移动端测试还是 PC 端测试,都属于 GUI 测试的范畴,所以基本的测试思路,比如基于页面对象封装和基于业务流程封装的思想是相通的,之前介绍的那些脚本分层的实现方法也都同样适用于移动端的 GUI 测试。 移动端应用的测试也会因为其自身特点,有一些独特的测试方法与思路。 三类移动应用的特点 移动
阅读全文
摘要:大型全球化电商网站的前端模块划分 先了解大型全球化电商网站的前端模块划分,有助于设计GUI测试。 前端架构按照不同的业务模块来划分,比如用户管理模块、商户订单管理模块、商户商品管理模块等。 各前端模块都会使用项目自己封装的组件库,比如自定义开发的列表组件、登录组件、信用卡组件等。(模块组件库) 把自
阅读全文
摘要:理想中的 GUI 测试报告应该是由一系列按时间顺序排列的屏幕截图组成,并且这些截图上可以高亮显示所操作的元素,同时按照执行顺序配有相关操作步骤的详细描述。 开源 GUI 测试框架的测试报告实现思路 扩展 Selenium 原本的操作函数实现截图以及高亮显示操作元素的功能 Selenium 原生的 c
阅读全文
摘要:GUI 测试的稳定性问题,影响 GUI 测试健康发展的一个重要障碍,严重降低了 GUI 测试的可信性。 要提高 GUI 测试稳定性,首先你需要知道到底是什么原因引起的不稳定。你必须找出尽可能多的不稳定因素,然后找到每一类不稳定因素对应的解决方案。 五种造成 GUI 自动化测试不稳定的因素 非预计的弹
阅读全文
摘要:介绍页面对象自动生成、GUI 测试数据自动生成、无头浏览器 页面对象自动生成 页面对象(Page Object)模型的不足 页面对象模型,是以 Web 页面为单位来封装页面上的控件以及控件的部分操作,而测试用例基于页面对象完成具体操作。最典型的模式就是:XXXPage.YYYComponent.ZZ
阅读全文
摘要:从测试数据的角度再来谈谈 GUI 自动化测试。 GUI 测试中两种常见的数据类型 第一大类是,测试输入数据,也就是 GUI 测试过程中,通过界面输入的数据。比如“用户登录”测试中输入的用户名和密码就就属于这一类数据;再比如,数据驱动测试中的测试数据,也是指这一类。 第二大类是,为了完成 GUI 测试
阅读全文
摘要:在介绍了GUI 自动化测试中的两个主要的概念“脚本与数据的解耦 ”以及“ 页面对象模型”,引入“操作函数”封装时,我提到操作函数在改善测试脚本可读性问题的同时,也引入了两个新的问题,即: 如何把控操作函数的粒度,以及如何衔接两个操作函数之间的页面。 如何把控操作函数的粒度? 操作函数的粒度是指,一个
阅读全文
摘要:测试脚本和数据的解耦 数据驱动(Data-driven)测试 把测试数据和测试脚本分离,测试脚本只有一份,其中需要输入数据的地方会用变量来代替,然后把测试输入数据单独放在一个文件中。这个存放测试输入数据的文件,通常是表格的形式,也就是最常见的 CSV 文件。 然后,在测试脚本中通过 data pro
阅读全文
摘要:主要介绍现在应用最广泛的Web GUI 自动化测试工具Selenium的工作原理。 Selenium 的实现原理 Selenium V1.0 Selenium V1.0 的核心是 Selenium RC(Remote Control) Selenium RC 利用的原理是:JavaScript 代码
阅读全文

浙公网安备 33010602011771号