这阶段有幸接手了公司新产品的测试,所以一直都很忙。后台收到一些同学的私信,想多了解下性能测试,正好闲暇之余,终于有时间总结了一些性能测试实践经验和测试过程,就跟大家聊一聊。

性能测试用来保证产品发布后系统的性能满足用户需求,在软件质量保证中起着重要作用。性能测试,我首选的工具是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",将分享进行到底...