Jmeter是java环境的,有些功能需要特定的jar才能使用。
可以吧jar包放在lib文件夹里面,在重启Jmeter即可。如果是.zip,把后缀改为.jar即可。
JMeter 自动从在它的/lib 和 /lib/ext 目录中的 jar 包发现类。如果你开发新的 JMeter 组件,你可以压
缩它们成 jar包并拷贝到 JMeter 的 /lib/ext 目录。JMeter 将会自导发现在这里的任何 jar包的JMeter 组件。如果你不想把扩展 jar 包放到 lib/ext 目录,可以在 jmeter.properties 中定义 search_paths 属性。
不要使用 lib/ext 给那些有用的 jar 包;它仅仅是存放 JMeter 组件。
其他 jar 包 (例如 JDBC, 和任何 JMeter 代码需要支持的类库)应该被代替放在 lib 目录。
活动在test plan页面点击右下的add directory or jar to classpath
新建HTTP请求
1, 建立线程组:测试计划右击-添加-thread-线程组
2,新建http请求: 线程组右击-samples-http请求
samples就是取样器
HTTP的get和post的区别:
发送请求后,会自动将参数放在不同的位置。
get方式:参数在url后面
post方式:参数放在date后面
HTTP请求默认值
如果一个线程中,有多个请求的参数和请求地址一致,则可以在最开始添加配置元件-HTTP请求默认值。
在HTTP请求默认值中添加参数和参数值,以及请求地址 即可,不需要去每个请求里面添加
如果一个线程中,只有一个请求的请求头不一样,则其他的请求会走"请求默认值”,这个接口还是在请求头里面填写“服务器名称/IP”即可,不会受请求默认值的影响。
HTTP消息头管理器
用法1:反爬虫(没用过)
如果用Jmeter向服务器发起请求,User-Agent: Apache-HttpClient/4.5.2 (Java/1.7.0_75)
不是浏览器登录,会被默认为是爬虫。
浏览器登录:User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36
添加HTTP消息头管理器,将user agent 改为Mozilla/5.0 。模仿浏览器登录
用法二:设置content-type 如果请求是json格式,content-type里面要添加json,如Content-Type: application/json
Content-Type: application/json; charset=UTF-8 代表支持2种
HTTP消息头管理器可以作用于单个请求,也可以作用于整个线程组。
查看结果树的几个方式:
Text
RegExp Tester-
CSS/JQuery Tester-
XPath Tester
HTML:网页形式查看
HTML(download resoueces)
Document:需要TIKA.jar 包。
JSON
XML
JSON Path Tester:如果要查看某个元素。在F12下定位元素,右键copy为xpath。在Jmeter的XPath express里面查找响应
添加断言
断言是针对单个请求的,添加了断言,需要添加一个断言结果
1,响应断言
2,XPath断言
用F12查找页面元素,再copy为XPath,黏贴在下图中即可。
但是不好用
参数化:
参数化后,可以实现一个请求多个用例。只需要去设置线程数和循环次数即可。
先定义变量,再在请求的参数值中引用变量
Jmeter引用变量的方法: ${变量名}
1,用户参数化 C:\Program Files (x86)\testing\apache-jmeter-3.0\my_workplace\用户参数化.jmx
添加-前置处理器-用户参数化
用例:1,正确用户名正确密码
2,错误用户名正确密码
3,正确用户名错误密码
4,用户名为空
5,密码为空
再将循环次数改为5次即可
- CSV Date set config 之TXT文件
添加-配置元件-CSV Date set config
引用变量,再将再将循环次数改为5次即可
- CSV Date set config 之csv文件
csv同txt一样,只是文件名称不一致,但是csv表格更方便
4 函数助手的 -CSVread
5,函数助手的随机字符
正则表达式提取器
如果一个请求A的响应,是下一个请求B的参数,可以用正则表达式提取器提取,放在变量里面,再引用。如果正则表达式提取不到,可以把两边的域扩大、
1、正则表达式提取器放在A的后面,用于提取
2、B的后面填写Debug samples,查看是否提取成功
3、在B的前面添加HTTP消息头管理器,把正则表达式带入,比如sessionid:{cookies}
如果3步骤加了没有效果,则在B里面加HTTP Cookie管理器,填写如下:
egg: 如下是一个请求的响应。需要提取sign和timestamp。
先复制 imestamp的value的前后字段。"timestamp":"1564736960177","app_id"
把imestamp的value换成(.+?)即可,
正则表达式提取器为:"timestamp": "(.+?)","app_id"
同理,sign的value的正则表达式 "sign":"(.+?)","timestamp"
{"code":200,"message":"查询成功","data":{"sign":"7677e312dedcbc826c9e3ef45679cbf5","timestamp":"1564736960177","app_id":"8666593d76804898812f0c489f83876c"},"success":true,"status":null}
HTTP请求cookie的两种处理方式:
请求A 登录,A登录后有cookie
请求B充值
1,直接在A前面添加 HTTP Cookie处理器,不需要填写内容
2,用正则表达式提取cookie值
第一步: 正则表达式提取器放在A的后面,用于提取
第二步:B的后面添加Debug samples,查看是否提取成功
第三步:在B的前面添加HTTP消息头管理器,把正则表达式带入,比如sessionid:{cookies}
如果3步骤加了没有效果,则在B里面加HTTP Cookie管理器,填写如下:
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
版权归原作者 小小红帽^^_^^_^ 所有, 如有侵权,请联系我们删除。