这阶段有幸接手了公司新产品的测试,所以一直都很忙。后台收到一些同学的私信,想多了解下性能测试,正好闲暇之余,终于有时间总结了一些性能测试实践经验和测试过程,就跟大家聊一聊。
性能测试用来保证产品发布后系统的性能满足用户需求,在软件质量保证中起着重要作用。性能测试,我首选的工具是JMeter,而且不得不说JMeter也是一款非常好的接口测试工具。
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使配置生效,很简单。
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插件;
然后新增一个根据用户名密码登录的credentials权限认证
最后就是配置节点,主要涉及配置jdk目录。
4、Jenkins上安装性能插件
主要是安装HTML reports和performance test result report插件
下载2个Jenkins插件,安装即可。
5、新建job
核心的内容如下
选择刚才的节点机为执行的机器,构建行为采用shell命令,构建后添加html report和performance trend。
6、验证结果
最后的效果如下。
可以看到丰富的html报告结果;
可以横向比较每个版本的性能基线;
ps:搭建jmeter性能测试自动化过程中遇到问题记录。
问题:
Jenkins无法展示性能测试的html结果
解决方法:
修改Content Security Policy的默认配置,进入ManageJenkins->Script console,输入如下命令并进行执行。
总结:
截止目前,jmeter+Jenkins性能测试自动化搭建已经完成,如果需要你也可以使用Ant集成。这个过程依然存在很多的不足,我会继续努力争取以后分享更多有价值的干货。古人云"The more we share, the more we have",将分享进行到底...