- 学习使用JMeter工具,实现针对Web项目URL的并发请求,完对结果进行整理及分析。
- 找出性能测试的
三步曲
HTTP Request
: 发送HTTP请求ForEach Controller
: 循环处理Response Assertion
:Response
断言Regular Expression Extractor
: 正则表达式提取器Debug Sampler
: 调试样例RegExp Tester
: 正则表达式测试View Results Tree
: 查看结果树Assertion Results
: 断言结果Summary Report
: 概要报告
- 只有实时通过获取
简书首页
内容,才能获取首页
中所有文件章
链接 - 通过使用
文章
链接的访问,才能达到测试访问时间的目的 - 对获取
文章页
的状态码进行校验
-
使用
Result Tree
中的结果,分析返回数据格式- 返回的所有文章均在
<ul class="note-list" infinite-scroll-url="/">
中,且每个文章均被存放在元素li
中
<li id="note-36654059" data-note-id="36654059" class="have-img"> <a class="wrap-img" href="/p/7546d40a7a02" target="_blank"> <img data-echo="//upload-images.jianshu.io/upload_images/11566005-642cfc0137e08206.png?imageMogr2/auto-orient/strip|imageView2/1/w/360/h/240" class="img-blur" src="//upload-images.jianshu.io/upload_images/11566005-642cfc0137e08206.png?imageMogr2/auto-orient/strip|imageView2/1/w/180/h/120" alt="120" /> </a> <div class="content"> <a class="title" target="_blank" href="/p/7546d40a7a02">每天三件事,开启高效人生</a> <p class="abstract"> 时间管理其实就是一门分配精力的艺术 很多人不能早起的原因在于,没有什么能让他早起感到兴奋,即便是早起了也不知道做什么事可以让生活变得有价值和意义... </p> <div class="meta"> <a class="nickname" target="_blank" href="/u/353d1d951f03">邵筅笙Finish</a> <a target="_blank" href="/p/7546d40a7a02#comments"> <i class="iconfont ic-list-comments"></i> 6 </a> <span><i class="iconfont ic-list-like"></i> 82</span> </div> </div> </li>
- 文章的标题及链接被存放在
<a class="title" target="_blank" href="/p/7546d40a7a02">每天三件事,开启高效人生</a>
中 a
标签中的href
值:/p/7546d40a7a02
- 访问www.jianshu.com/p/7546d40a7a02可正常打开文章
每天三件事,开启高效人生
的页面内容
- 返回的所有文章均在
-
只需要将所有文章元素中的
href
提取出来,再将www.jianshu.com
的添加上,便可完成对所有文章
请求的链接拼装
-
使用
Result Tree
中的RegExp Tester
调试,最终达到提取文章href
内容。 -
<a class="title" target="_blank" href="(.+?)"
- 添加
Regular Expression Extractor
来提取首页中获取的每个文章的href
值,并返回给变量articleLink
- 添加
Debug Sampler
查看正则表达式
提取的结果是否正确,使用默认配制即可 - 再次运行测试,查看
Result Tree
中查看Debug Sampler
的结果 - 至此,提取文章
href
值的内容已经完成,禁用/删除Debug Sampler
至此,所有的调试工作已完成
- 设置
Thread Group
中的Number of Thread(users)
为1,并发为1,查看测试结果: 最小的292至最大的697,单位: 毫秒。错误率
为0 - 调整并发为10时,查看测试结果: 最小243至最大703,单位: 毫秒。
错误率
为0 - ......
- ......
- 可以逐步将
并发
数据提升,以达到最终找出系统的性能阀值
。性能测试初步
结束
说明: 从前两次的测试结果显示,最小值没有什么变化,这种可能是因为网络原本就有波动。
-
完整示例代码: Sample.jxm
-
性能测试三步走: 分析业务点->调试脚本->上测试,上面已经完整展示。
-
通过上面几组的测试数据,可以看出,第一次的的最大值
2460
,在后面的测试过程中再没有出现过。有可能 是网络波动引起的 -
此项目访问的正式营运网站简书,因此不能直接将并发量提高太多,不能出现恶意访问的情况,练手即可。别被封IP或被被告
-
不足
- 当前设计的测试计划在执行过程中会有
干扰
数据: 访问首页请求,需要自行去除 - 此测试没有
最终的报告形式
,有效且完整的报告内容在后续章节说明
- 当前设计的测试计划在执行过程中会有