Jmeter小实践

2018-07-15  本文已影响0人  羊羊羊羊羊阳

类似于百度贴吧,你先要用户名密码登录贴吧,然后发帖子。

模拟登录发帖功能。

首先,你得下载安装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请求的参数设置处改为如下设置

这就表示每个线程都从${username}和${password}、${rencode}中读取值,实现了不同的用户访问。

4.如果一个参数的值没有固定值,要随机取值,可用随机函数来表示,如下图:

wares_num随机取值[1,10],于是可以用${_Random(1,10)}来表示,这样子每次线程取得值为1到10中间的随机

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

上一篇 下一篇

猜你喜欢

热点阅读