Jenkins+Jmeter性能测试自动化
实现基于linux平台下的性能测试自动化,采用了jenkins+gitlab+jmeter+shell的方式,为什么采用shell是因为这种方式更加灵活,还有一种ant的方式,较为复杂,可以定制化输出的测试报告模板。
踩过的几个坑
基于Linux在jenkins中实现性能测试自动化
1、需要在linux下安装jenkins作为持续集成工具平台;
2、将jmeter和jenkins安装在同一台服务器,跨服务器的没有尝试过;
3、为了实现测试代码可管理并触发测试自动执行,采用gitlab作为代码仓库;
4、创建gitlab的webhook提供给jenkins的job的trigger调用;
5、编写jmeter脚本,在客户端定义并实现自定义参数的参数化构建;
6、Jmeter的参数化文件的跨平台问题在前一篇文章已经解决;
SCM:git+gitlab
1、创建并初始化本地git仓库,与远程gitlab仓库进行关联;
2、添加jmeter文件到本地仓,推送本地jmeter脚本到远程仓库;
3、在gitlab创建的webhook触发jenkins任务并构建jmeter脚本执行测试;
4、完成性能和接口测试,在jenkins控制台输出html测试报告;
CI: gitlab+jenkins环境配置
1、创建gitlab远程仓库;
2、jenkins创建用户访问gitlab的凭据,用于构建jenkins任务时访问gitlab仓库内的jmeter脚本;
3、jenkins创建job配置属性中构建触发器设置:Build when a change is pushed to GitLab. GitLab webhook;
4、jenkins的job中生成secretToken;
5、gitlab 存储代码的仓库中,选择jmeter仓库在设置中选择“集成”,配置jenkins构建job的地址url和secretToken;
6、测试gitlab和jenkins的push event成功,webhook可用;
Jmeter: jenkins+jmeter环境配置
1、在linux的jenkins服务器上安装jmeter,配置jenkins环境变量;
2、jenkins安装publish html report插件;
3、jenkins job 添加 jmeter脚本执行场景所需要的自定义变量;
4、添加execute shell脚本调用jmeter脚本和校验脚本执行结果;
5、如果使用分布式架构进行测试,主控Jmeter与Jenkins安装在同一台服务器即可;
Linux Shell: Shell编写事项
1、在jenkins的workspace下创建jmeter性能测试的日志工作目录;
2、反复执行jmeter job需要清理历史数据,例如jtl,html测试报告;
3、如果有参数化数据文件,需要将数据文件移动到jmeter的bin目录下;
4、参数化jmeter测试场景时使用的线程、循环次数、执行时长需要在jmeter客户端提前定义才能引用;
5、为了保证测试的完整性,脚本执行完成后需要判断脚本是否存在错误,执行是否成功;
需要说明的几点
基于Linux平台的Jmeter性能测试自动化
1、需要熟练掌握git和gitlab;
2、如果要使用shell,需要掌握shell编程,如果ant用的很好,也可以用ant不需要写代码;
3、掌握jmeter的基本使用即可,需要在本地调试脚本可用后,再做推送动作;
4、完成前面提到的一些步骤既可以实现本地git仓推送到远程gitlab后,自动触发jenkins完成自动化性能测试;
5、测试结束后,可配置邮箱服务,发送测试邮件到相关人员邮箱;