360彩票网站

实验:使用JMeter实现Phpwind的性能测试
作者:强官涛   类型:测试开发    类别:实验   日期:2018-02-02    阅读:2796 次   消耗积分:1 分


实验简介


在前面的学习中,我们已经利用JMeter完成了针对Agileone系统的协议级接口测试。我们也知道,性能测试技术的核心便是利用多线程技术发送协议请求,完成对大量用户访问系统的模拟。而JMeter的设计初衷其实就是为了性能测试,比如我们创建一个测试计划的第一步便是创建一个线程组。本实验就为大家讲解如果利用JMeter完成对Phpwind的登录和发帖的性能测试。

 

实验目的


(1) 掌握JMeter中的关联查找的用法。

(2) 掌握JMeter中的线程设计及用法。

(3) 掌握JMeter中的测试报告的用法。

 


实验流程


1. 实现Phpwind的登录取样器


我们已经为Phpwind创建了从testuser_1到testuser_100共100个用户,那么在性能测试过程中,我们应该实现用户的随机登录,这样更能模拟真实场景。


(1) 创建一个“HTTP请求”取样器,并命名为“DoLogin”,填写好对应的登录的POST请求参数。

(2) 为该取样器创建“响应断言”和“察看结果树”,后续请求同。

(3) 为该取样器创建一个“前置处理器”,并实现一个从1到100的随机数。

(4) 最终实现的测试请求如下:


20180202_160458_049.png 

 

2. 利用正则表达式关联验证码


由于在Phpwind中发帖时,必须指定一个字段“verify”,该值是一个随机数,我们必须使用正则表达式关联响应中的对应的值。这部分在接口测试的实现过程中已经有所掌握,此处我们主要看看在JMeter中如何实现:

(1) 添加一个“HTTP请求”取样器,并发送GET请求给“/phpwind/post.php?fid=2”获取响应。

(2) 为该取样器添加一个后置处理器,设置为“正则表达式提取器”,并为其进行如下设置:


20180202_160530_567.png 

 

(3) 对上述的几个输入字段简单做一个说明:


a) 引用名称:下一个请求要引用的参数名称,如填写verifycode,则可用${verifycode}引用它。

b) 正则表达式:圆括号包含的就是要提取的内容,这也是我们熟练应用的内容。

c) 模板:用$-$引用起来,如果我们设置的正则表达式查找到多个值,则序号表示处理哪一个值。

d) 匹配数字:0代表随机取值,1代表全部取值,通常情况下填0就好。

e) 缺省值:如果参数没有取得到值,那默认给一个值让它取。

 

3. 添加发帖请求

(1) 为该取样器设置一个用户参数,使用函数助手生成一个随机数,用为帖子标题和内容的随机数。

(2) 将上一步中获取到的verifycode作为POST请求正文verify字段的值。

(3) 最后生成的测试请求如下:


20180202_160553_228.png 

 

4. 确保每个请求下载全部资源


默认情况下,JMeter与接口测试一样,只负责当前请求页面的下载,而不会下载页面的其它附加资源,这显然是不符合真实情况的。所以我们需要下载页面的全部资源,在HTTP取样器中的“Advanced”标签页中,勾选“从HTML文件中获取所有包含的资源”即可。


20180202_160606_753.png


5. 设计并发场景

本次执行我们仍然按照前面的Java脚本相同的场景设计:50个用户,每10秒钟并发5个用户,每个用户运行100次。具体设置如下:

版权所有,转载本站文章请注明出处:蜗牛学院在线课堂, http://quangtruong.net/note/91
上一篇: 实验:使用JMeter实现Agileone的接口测试
下一篇: 实验:使用LoadRunner实现Agileone的接口测试
提示:登录后添加有效评论可享受积分哦!