类似于百度贴吧,你先要用户名密码登录贴吧,然后发帖子。
模拟登录发帖功能。
首先,你得下载安装jmeter,配置环境,可以下载一个badboy录制软件。
下载好的jmeter文件夹中有各种目录,都是干什么用的呢?
bin目录:存放jmeter的主jar包,以及相关的脚本和配置文件。jmeter.bat:启动jmeter的主脚本;jmeter-server.bat:实现联机负载;jmeter.properties:jmeter主要配置文件
docs目录:官方API文档
lib目录:启动时默认的classpath路径
lib\ext目录:存放第三方的组件和插件
printablw_docs目录:存放官方提供的帮助f文档
2.jmeter的脚本实现
有两种脚本实现的方法
*利用工具录制,通过工具自动抓包,自动解包。
(1)badboy录制
注意:录制完成之后,export to jmeter保存文件;所有step组件至少执行一次以下操作:右键名称和step有关的组件-change Controller-逻辑控制器-简单控制器
优点:过程简洁,生成脚本简洁
缺点:因为是内置的IE浏览器的内核兼容性问题,会导致部分B/S架构产品录制失败,也不能更改内置浏览器。
(2)使用自带的http代理服务器
第一步:右键测试计划-添加线程组
第二步:添加Cookie管理器
第三步:右键工作台添加Http代理服务器,需要配置端口
cmd:查看已有端口 netstat -an
浏览器设置-局域网设置-勾选上使用代理服务器-如果jmeter在本机安装的,直接填localhost,端口8888(和jmeter设置的一样);如果jmeter不在本机,输入所在的IP地址
第四步:在http处点击启动,进入到浏览器走过程。过滤掉一些没用的静态资源请求。例如:js css png img gif等
用到正则表达式过滤:.*\.js.*
在Http排除模式:添加 .*\.js.*|.*\.css.*|.*\.png.*
第五步:录制完之后点停止按钮,浏览器把代理模式关掉
注意:录制过程中一定要关闭其他使用http协议的应用;
2.过滤选项的使用。加一个包含模式 .*www\.baidu\.com*
通常来说,不过滤不会影响录制,一旦录制需要保证过滤选项的准确性
3.录制完成后,一定要记得关闭代理服务器,还原客户端原本设置,让客户端不使用代理
优点:录制过程可控,使用于任何http协议的产品,不限架构
缺点:只适用于http协议
操作cookie:加在具体链接里面,加一个信息头管理器,添加一个cookie的名字。name=XXX 录制完之后添加结果观察树
*手写抓包,手动抓包解包。
手动抓包工具:ie F12 Fiddler httpWatch
线程组-cookie管理器
HTTP请求(协议 路径 服务器地址 端口)
添加信息头管理器(Accept User-Agent Accept-Encoding Centent-Type)
优点:适用于任何协议 任务架构
缺点:要了解被测协议 ; 了解抓包工具;了解性能测试工具
脚本整理好之后,运行一下,看贴吧中是否出现了新的动态。
可以更改想要发布的名称和内容,在链接中信息中手动改正
第二个小实践。
实现多个用户登录。用户名和密码,以及验证码。用户名和密码是固定值不用做处理,验证码可以设成固定值,可以找开发。
1.新建一个txt文件,里面数据为一行一个 username,password,rencode
abc,123456,1
2.jmeter录制好登录内容,如果录制的脚本中在“http请求”一栏的参数中已经有参数,但值是固定的(如下图),

如果想要值不固定,在脚本的这个步骤上,右键添加--配置元件--CVS data set config,如下

3.配置csv,其中,filename 为text.txt文件存放的位置,text.txt可先建一个文本文件,里面的数据为一行一个“username,password,rencode”,中间用逗号隔开。即步骤1中所准备的数据。
variable names可自己设定,只要后面(下图$后的内容)保持一致即可,其他的按照上图设置
然后再http请求的参数设置处改为如下设置


4.如果一个参数的值没有固定值,要随机取值,可用随机函数来表示,如下图:
wares_num随机取值[1,10],于是可以用${_Random(1,10)}来表示,这样子每次线程取得值为1到10中间的随机

注:如果没有验证码,就把rencode去掉即可。
网友评论