这阶段有幸接手了公司新产品的测试,所以一直都很忙。后台收到一些同学的私信,想多了解下性能测试,正好闲暇之余,终于有时间总结了一些性能测试实践经验和测试过程,就跟大家聊一聊。
性能测试用来保证产品发布后系统的性能满足用户需求,在软件质量保证中起着重要作用。性能测试,我首选的工具是JMeter,而且不得不说JMeter也是一款非常好的接口测试工具。
![ac30cb1cc31dcc0e35b8f8c57fca796c.png](https://i-blog.csdnimg.cn/blog_migrate/5f2c1e491525804b25b6a4de9cce36ba.jpeg)
Jmeter应用领域
JMeter是Apache组织开发的基于Java的性能测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域
1.可用于压力测试及性能测试,数据库测试,Java程序的测试,HTTP及FTP测试,Web Service测试等等
2.可用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试
3.可用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的 强度和分析整体性能
4.可用于对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果
Jmeter虽然是一款广泛使用的性能测试工具,然而,在执行测试前,用户往往需要花费很多额外的精力和时间配置测试环境。
同时在进行测试时,使用单台服务器模拟数以千计的用户对目标服务器产生负载,受限于服务器的性能可能无法满足需求,这就需要一个多台服务器的分布式的并发的测试环境。
因此就需要一个基于Jmeter和Jenkins的自动化性能测试来解决以上问题。
框架介绍
首先用jmeter录制或者书写性能测试的脚本,用maven添加相关依赖,把性能测试的代码提交到github,在jenkins配置git下载性能测试的代码,配置运行脚本和测试报告,配置运行失败自动发邮件通知,这样一来性能测试的job配置完成。
接着,把性能测试的job配置成开发job的下游job,一旦开发有了新的代码提交运行开发自己的job后,就会自动触发我们性能测试的job。这样我们就实现了接口性能测试的全自动化,我们只需要关注测试失败的邮件!
1、安装java、maven
首先在远程的压测机上安装java、maven
解压缩相应的tar包
配置/etc/profile路径
Source /etc/profile使配置生效,很简单。
![4213b71af41627237db543abf35b104e.png](https://i-blog.csdnimg.cn/blog_migrate/4293ad5309e8963439bb9f7a8d5dbc83.jpeg)
2、安装Jenkins
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
yum install Jenkins
启动service jenkins start
利用ip:port访问,进入Jenkins首页进行相应配置。
默认端口8080、主目录路径/usr/lib。
3、在Jenkins上新建节点机
节点机即压测机,即你要用哪台机器跑你的job。
首先安装ssh plugin插件;
![f2e6e6782ed5909fb09ba0b655f5c2d7.png](https://i-blog.csdnimg.cn/blog_migrate/0a6f541b23624fe8667b9ed4d1f80384.jpeg)
然后新增一个根据用户名密码登录的credentials权限认证
![7e41b2d7fbc8cd40c00c11996f070395.png](https://i-blog.csdnimg.cn/blog_migrate/59a053c539c0e2d9466f8e6bd8ffc445.jpeg)
最后就是配置节点,主要涉及配置jdk目录。
![3f3d8ba5950950ccea711e84d016e333.png](https://i-blog.csdnimg.cn/blog_migrate/ac098bb73ce6b2cd358591fd75e4cb58.jpeg)
4、Jenkins上安装性能插件
主要是安装HTML reports和performance test result report插件
下载2个Jenkins插件,安装即可。
![2917e5664b3b78b854f5366cd50bacc0.png](https://i-blog.csdnimg.cn/blog_migrate/decb38c3d2ee6b9782c7566a4aa7925c.jpeg)
5、新建job
核心的内容如下
选择刚才的节点机为执行的机器,构建行为采用shell命令,构建后添加html report和performance trend。
![fe2927b39f02666cb611e6fa5b3c67ac.png](https://i-blog.csdnimg.cn/blog_migrate/c49442a21b0467d2a75d84806484928a.jpeg)
![b79dfbcaef08c1b65597dbab46465434.png](https://i-blog.csdnimg.cn/blog_migrate/c571f1203016ac59c92715ab60d09ebb.jpeg)
6、验证结果
最后的效果如下。
可以看到丰富的html报告结果;
可以横向比较每个版本的性能基线;
![750417c9c2c924193733ea6ce46bb76a.png](https://i-blog.csdnimg.cn/blog_migrate/2760d2a42c1412f115d4a39caaa3362f.jpeg)
![4b69dba20e6bcc5c9e8b8354ddfc8281.png](https://i-blog.csdnimg.cn/blog_migrate/c12178f04bf3bd0bd570e3186007d89f.jpeg)
ps:搭建jmeter性能测试自动化过程中遇到问题记录。
问题:
Jenkins无法展示性能测试的html结果
解决方法:
修改Content Security Policy的默认配置,进入ManageJenkins->Script console,输入如下命令并进行执行。
![330d8ac3b929b345eed589c0da26ddc1.png](https://i-blog.csdnimg.cn/blog_migrate/f3c8b2a03957593c8982e2515db925ef.jpeg)
总结:
截止目前,jmeter+Jenkins性能测试自动化搭建已经完成,如果需要你也可以使用Ant集成。这个过程依然存在很多的不足,我会继续努力争取以后分享更多有价值的干货。古人云"The more we share, the more we have",将分享进行到底...