手工自动化:时间紧,在开发提测前尽早发现问题,所以速度要快;
接口自动化的目的:与手工自动化场景目的完全不一样,他是为了维护产品质量,防止引入新的问题;
执行时间:一般都是在系统测试完成后, 且产品需要多次更新迭代,不是一次性的产品,需要长时间运维,结合jenkins定时点执行;
依据:API接口文档、抓包工具等;
参数化
- 使用用户定义变量:如登陆中手机号、密码等可使用用户定义的变量来定义,方便全局更改(避免去每个接口中更改)
- 使用函数,灵活使用函数,比如说性别就可以使用随机函数
- 使用csv参数:导入data数据文件
- 从上一个接口中取参数:通过json提取器获取响应中的数据给后面的接口做参数化。
- 通过连接数据库从数据库从取数据:
第一步:jmeter中先配置数据库连接,定义连接池名称,数据库的URL连接地址(ip和port)、用户名、密码等信息;
第二步:添加jdbc request,通过连接池名称关联上面的数据库配置;输入所需要的sql语句。 - 其他方法方便自动化的方法
断言
- json断言:灵活使用各种断言
- 响应断言:本次断言的是状态码200
数据清除
- 自动化脚本需要定时定点执行,所以需要清除上次数据,避免影响下次执行,我们一般通过连接数据请求,每次执行完接口后直接清除本次数据。使用tearDown线程组,增加jdbc配置和请求同参数化中一致。
报告
- jmeter的bin目录下执行命令:jmeter -n -t D:\test25\Jmeter_test\saas.jmx -l result.jtl -e -o ./report01;
- result.jtl文件如果目录下已有将影响生成html报告
- 报告如下:
jenkins
启动服务
- 启动jenkins服务:jenkins的war包下面下面执行命令 java -jar jenkins.war
新建任务以及配置
- 新建任务
- 配置任务-定时执行:每日8点、17点执行,H 8,17 * * * 或者每日8点执行 H 8 * * *
- 设置执行命令:Execute Windows batch command
命令入下: 需要先清除上次的报告结果包括.jtl文件和报告,避免下次生成报告失败。
del result.jtl
rmdir report /S /Q
“D:\Program Files\Java\apache-jmeter-5.6.3\bin\jmeter.bat” -n -t “D:\test25\Jmeter_test\saas.jmx” -l result.jtl -e -o ./report
注释:所有绝对路径都需要用双引号,避免执行被Windows 路径中的空格导致命令被截断
![配置执行(https://i-blog.csdnimg.cn/direct/c9a416d746614a20a4dea4da74da17aa.png) - 设置报告:报告路径
- 设置通知:报告发送给谁,报告的样式以及内容格式
![设置邮件发送人(https://i-blog.csdnimg.cn/direct/4f73c3cb683b4a4896b06e66516c0d39.png)
7. 报告触发机制:本次使用always
构建历史
点击构建
查看控制台输出:报错都在这块查看
邮件通知