利用Jmeter对简易投票系统进行刷票的实践
来源:互联网 发布:空中救援队 知乎 编辑:程序博客网 时间:2024/06/02 06:38
背景介绍
一朋友朋友圈分享出一个链接,请求大家帮忙对其表弟参加的一个作文比赛进行投票,按照惯例,要先注册再投票,且同一个ID每日只能投票一次。
探索发现
一开始就想到能不能刷票,后来发现该网站对注册账号几乎除了重复性校验外没有其他任何校验,于是就可以轻松开始刷票了。
使用工具:Jmeter
步骤思路:
1. 注册
2. 登录
3. 投票
涉及知识点:
1. Jmeter变量定义及函数使用
2. 正则表达式
实现
先手动执行一次投票流程,将用到的请求的相关信息观察一遍(主要就是请求数据以及相应数据)
通过Chrome控制台可以轻松看到注册和登录请求信息如下
1.注册请求 users.json
2.登录请求 sign_in.json
3.投票请求 vote.json
构造请求没有什么复杂的,提一下里面用到的函数方法:
1. 在构造注册请求时,为实现手机号的随机,添加了随机变量。
注意:Options中的Per Thread的设置是用来设定该变量是否线程共享,如果设置为False,意味着在同一次执行中涉及多出调用该变量时,该随机变量只随机一次,即前后一致;
2. 三个请求中都有使用到当前时间time,这个可以用Jmeter中的time函数来实现${__time()}
3. 获取上一个请求中的返回数据。投票请求中需要用到一个参数token
,观察发现该token
在登陆请求中会作为response的内容返回。这里可以采用后置处理器中的正则表达提取器来实现。
登陆请求返回的数据是:
{"id":420239,"email":"18615051081@ljmob.com","user_name":"hello","user_avatar":"/avatar.png","roles":"visitor","token":"TxCxsfz8xgR3LfWPZYsY","team_class":[]}
这里构造"token":"(.+?)",*
来进行正则匹配,其中括号内为正则匹配表达式。
依次说明下正则提取器中每个配置项的含义:
- Reference Name: 在测试计划中用来被引用的变量名${}
- Template: 模板是指向群组的指针。
例如:针对Hello World
使用Hello (.+)$
来匹配 $0$
指向完全匹配的表达式Hello World
$1$
指向World
- Match No. 用来表明匹配第几个,0的话表示随机
- Default Value 若没匹配上,将会使用该默认值
总结
通过生活中的小需求来解决问题,以点到面,在用中学,记忆更深刻。最近有一个很大的感悟就是:用进废退!
- 利用Jmeter对简易投票系统进行刷票的实践
- 【小型系统】简单的刷票系统(突破IP限制进行投票)
- 利用map的特性做一个简易的投票程序
- 简易的网上投票系统(Struts2+JFreeChart)
- 利用JMeter的录制功能对Web网页进行压力测试
- 简易在线投票系统(php)——前端设计(投票页面的源码)
- 简易在线投票系统(php)——前端设计(发布投票页面的源码)
- 利用Jmeter进行压力测试的步骤
- 利用jmeter对web应用进行压力测试
- 利用jmeter对mysql数据库进行压力测试
- 【Dubbo】利用Jmeter对Dubbo接口进行压力测试
- 利用fiddler对ios系统的应用进行抓包
- 简易在线投票系统(php)——发布投票页面
- 简易在线投票系统(php)——投票页面
- 简易在线投票系统(php)——投票结果页面
- Android实践 -- 对apk进行系统签名
- 微信投票管理系统(二)对系统进行分析
- 对 Jenkins+ANT+Jmeter 接口测试的实践
- 关于导航栏问题的123
- Access restriction : The type BASE64Decoder is not accessible due to restriction on required library
- 单点登录在项目中的进一步理解
- excel怎么转换成pdf文件格式
- TexturePacker参数
- 利用Jmeter对简易投票系统进行刷票的实践
- Linux学习笔记之权限管理
- Libgdx仿安卓R文件通过Id访问资源
- 技术宅男逆袭 牛人自制激光虚拟投影键盘
- Android的bitmap和优化
- CentOS安装JDK1.7+Tomcat7
- HDU-1711 Number Sequence (kmp)
- Linux学习笔记之SHELL编程
- Building for Bebop on Linux