什么是自动化测试
将手工执行的部分测试行为转换为机器可以识别的语言,从而交由机器来实现测试的行为,这种就叫做
自动化测试
。
自动化测试分类
- 自动化性能测试(性能测试)
Jmeter
。LR
。Locust
。
- 自动化功能测试(自动化测试)
工具:RobotFramework
,AirTest
(手游端比较火),Playwright
(微软开发的),Selenium IDE
(新版),Cypress
(不用这个,弃了),HTTPRUNNER
(太老了,不建设使用)。
应用层:
Selenium
为核心。- Python:
Selenium WebDriver
,Appium
,Requests
。 - Java:
Selenium WebDriver
,Appium
,HTTPClient
。
- Python:
自动化测试开发这个岗位的定义?
很多人认为测试平台是测开,做测试框架是自动化测试。
测试开发本质是测试工作,不是开发工作。
测试平台与测试框架的区别?
- 测试平台:前端+后端,web系统为主体存在的架构体系。(测试平台的本质意义是web系统的开发,不是为了测试服务的)。
- 测试框架:纯后端开发为主体的架构体系。一般用在服务端部署为主。(测试框架是服务的开发,是专门为测试服务的)。
注意事项
- 自动化测试是专门为了部分业务来实现的。而不是全链路。
- 如果自动化测试是为了全链路负责的话,这个行业就会被淘汰了。
- 自动化测试主要是为了核心业务来实现的,目的是为了提升测试效率,降低重复固化工作的操作行为。
自动化测试的分层
分层示意图
分层理解
-
UI层
:包含WebUI
和AppUI
。(建议:除非必要,否则最好不要做App
自动化测试)。如果非要做APP
自动化,建议通过工具的形式走会更方便一些。- 实现UI系统交互的自动化测试,主要用于核心业务的自动化测试行为。
- 应用在回归测试阶段,对固化的流程通过自动化进行回归,提升测试效率。本质意义上就是一种测试手段,一般而言UI自动化覆盖率在
40%-60%
之间。覆盖率
就是自动化测试所覆盖的内容,占据整个系统的多少比重。比重的高低都是基于测试框架本身的设计行为所计算出来的。所以说自动化测试的技术最核心的点是测试框架的设计能力
。
-
Service层
:集成测试阶段,主体是数据的交互。所以应用接口自动化测试技术实现。主要用在后端的接口联调以及回归测试阶段。可以极大地提速测试的效率。目前应用最为广泛的自动化测试阶段,因为接口本身的变动会比较低。 -
Unit层
:单元测试层级,目前大家不需要考虑的层级。单元测试的手法主要讲究的是覆盖率
。如:条件覆盖,逻辑覆盖。单元测试的核心思想:每一行代码至少执行一次。单元测试就是一个苦力活。国内目前单元测试主体是开发人员自己完成的。