性能测试工具良莠不齐,免费的性能工具 Jmeter 是目前应用比较广泛的性能测试,但要很好的利用起来也不容易,毕竟是免费的产品。商用的测试工具有 LoadRunner(Micro Focus),kylinPET(奇林),CPTS(华为)、PTS(阿里)等。近些年国产的性能工具的也有了不小的进步,目前国内厂商性能性能测试工具多以开源压测引擎为基础进行包装,也有个别厂商坚持走自研的道路,不管如何,这些进步都难能可贵。
不同的性能测试工具都有它的优缺点,只要我们能很好的利用起来,也会给我们带来不小的收益。利用性能测试工具开展性能测试,最重要的一点是脚本录制及调试,它也是性能测试工具使用难点。下面我们讲解如何利 Jmeter 进行脚本录制。

步骤 1:选择被测试系统

url:http://59.110.158.28/Example/

步骤 2:如下图所示在 Jmeter 上创建一个线程组和一个察看结果树

线程数表示运行时启动的线程数每个线程循环运行线程组内的http请求每循环一次相当于一个虚拟用户
循环次数线程运行线程组内的HTTP请求的次数 
Ramp-up时间):启动指定线程数需要的时间。0表示 JMeter 将立即建立所有线程

步骤 3:Jmeter 上创建一个 HTTP 代理服务器

目标控制器指定脚本存放的位置
分组
1)不对样本分组”:所有请求全部罗列
2)在组间添加分隔加入一个虚拟的以分割线命名的动作运行同不对样本分组”,无实际意义
3)每个组放入一个新的控制器执行时按控制器给输出结果
4)只存储每个组的第一个样本”:对于一次url请求实际很多次http请求的情况这个选项很好用因为我们常常是不关心后面的那些请求的
5)HTML文件中获取所有内含的资源勾选表示HTML文件中获取所有内涵的资源

步骤 4:设置浏览器为代理模式


注意:设置完要注意保存

步骤 5:启动 Jmeter 的代理服务器


启动后有一个录制控制台

步骤 6:打开浏览器输入要录制的 URL

登录页面

登录后的页面加载

录制后生成的脚本

步骤 7:脚本调试

在线程组下面添加察看结果树和聚合报告查看回放的情况。
脚本调试是性能测试过程非常重要的步骤之一,笔者径常遇到,很多测试人员,测试一周多都是白测试,因为脚本自认为调试成功了,而往往事实并没有调试成功。下面我们来调试一下本次录制的脚本。
运行脚本,执行结果如下,看起来是所有的请求都运行成功,如果你也是这样认为,那也一样掉进了坑里。

对于大部分的性能测试工具,如:LR,Jmeter 等,如果 http 响应如果返回响应码是 20X-30X 则认为是正常,如果返回 40X-599 就认为是失败的。
下图所示,请求响应:用户登录失败,在跳转失败页面....

进一步检测响应头信息:响应码是 200,Jmeter 调试结果当作请求返回成功。

下面的 81 /Example/getNews,返回显示未登录,但结果察看树显示请求也是正常,也是同样的原因(错误码返回 200)

通过上面例子看,脚本调试脚本是多么的困难了。结果树请求都通过,并不代表脚本调试成功。
那么有没有什么办法来证明脚本真正的成功的呢?有的,可以通过添加检查点或直接查看请求返回结果。
一般来说需要检查每个页面的关键信息,你也可以直接查看关键 http 请求的返回信息来验证。
针对本文本案例样本处理三个地方才能让脚本真正的调试通过:验证码、JSESSIONID、ticket
1)验证码:可以通过添加边界提取器完成
2)sessionid 的处理:可以添加 HTTP Cookie 管理器,让 Jmeter 自动处理
3)ticket:正则表达式提取器。因为 JSESSIONID 的值到行尾,无法使用边界提取器处理。

步骤 8:再次调试,如下图所示,请求可以正常返回数据了

任务执行:

执行结果如下所示:登录页加载时间最小 9.7 秒,最大 16.9 秒,测试时间与实际相差非常大(实际时间 2-3 秒不等),造成此原因的论述已经在《性能测试工具 Jmeter 你所不知道的内幕》中详细描述,此处不再赘述,有兴趣的可以仔细研读一下,


↙↙↙阅读原文可查看相关链接,并与作者交流