转载地址:
http://www.cnblogs.com/0201zcr/p/5089620.html
http://www.cnblogs.com/whitewasher/p/6762793.html
相关搜索:https://www.baidu.com/s?ie=UTF-8&wd=Jmeter%E5%A6%82%E4%BD%95%E5%B0%86%E4%B8%8A%E4%B8%80%E4%B8%AA%E8%AF%B7%E6%B1%82%E7%9A%84%E7%BB%93%E6%9E%9C%E4%BD%9C%E4%B8%BA%E4%B8%8B%E4%B8%80%E4%B8%AA%E8%AF%B7%E6%B1%82%E7%9A%84%E5%8F%82%E6%95%B0
【第一篇】
1、简介
Apache JMeter是Apache组织开发的基于Java的
压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用
于测试静态和动态资源例如静态文件、Java小服务程序、CGI 脚本、Java 对象、数据库, FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的
负载,来自不同压力类别下测试它们的强度和分析整体
性能。另外,JMeter能够对应用程序做
功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
Apache jmeter 可以用于对静态的和动态的资源(
文件,Servlet,Perl脚本,java 对象,
数据库和
查询,FTP服务器等等)的
性能进行测试。它可以用于对服务器,网络 或对象模拟繁重的
负载来测试它们的强度或分析不同压力类型下的整体
性能。你可以使用它做
性能的图形分析或在大并发
负载测试你的服务器/脚本/对象。
2、用途
1.能够对HTTP和FTP服务器进行压力和
性能测试, 也可以对任何
数据库进行同样的测试(通过JDBC)。
2.完全的可移植性和100% 纯java。
3.完全 Swing 和轻量组件
支持(预编译的JAR使用 javax.swing.*)包。
4.完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的
功能同时取样。
6.缓存和离线分析/回放测试结果。
3、下载、简单应用
4、如何将上一个请求的结果作为下一个请求的参数
在压力测试的时候,经常要将几个流程串联起来才能将程序测试通过。如:我现在
用户首先要
登录,获得我
登录的凭证(tokenId),之后我的请求其他的资源的时候需要带上这个凭证。才能识别你是否是合法的
用户。
1)、创建一个线程租
3)、创建后置处理器
JMeter GUI 视图中右击该采样器打开右键
菜单 ->
添加 -> 后置处理器 -> 正则表达式
提取器,打开"正则表达式
提取器"会话
页面并编辑其
内容如下:
后置处理器是当这个请求返回后要做得事情,我这里是要从返回的
内容中将我们要的tokenId
获取出来。这里使用“
正则表达式提取器”,用正则表达式,将我们要的
内容获取出来。
- 引用名称是下个请求将要引用到的变量名;
- 正则表达式是提取你想要内容的正则表达式,小括号()表示提取,也就是说对于你想要提取的内容需要用它括起来;
- 模板是使用提取到的第几个值。因为可能有多个值匹配,所以要使用模板。从 1 开始匹配,依次类推。这里只有一个,所以填写 $1$ 即可;
- 匹配数字表示如何取值。0 代表随机取值,1 代表全部取值。这里只有一个,填 1 即可;
- 缺省值表示参数没有取到值的话,默认给它的值。一般不填。
这个请求返回的数据如下:
{"message":"success","statusCode":200,"registerDay":"20","tokenId":"bf1017bc1bb495ae31764b306a3422885f5"}
我们现在要
获取的是上面这个json字符串中tokenId的值,即 bf1017bc1bb495ae31764b306a3422885f5 。
在这个请求中,我们要将上面的tokenId作为一个参数一并发送。
同上2)、
添加一个http请求(线程租右键——》
添加——》Sampler——》HTTP请求)
【第二篇】
正则表达式提取器是一个后置处理器,作用是在请求完成后,从响应数据中截取一部分字符串保存到变量中,以便下一个请求使用,下面我们就来做一个简单的例子吧
1.首先在线程组下添加两个HTTP请求,
2.添加好两个HTTP请求后,在每个HTTP请求下添加一个查看结果数
3.在第一个HTTP请求下添加正则表达式提取器
4.在第一个HTTP请求添加好IP地址,路径,端口号,协议,方法,如果有参数,还需要添加参数,我这里没有参数所以就不添加了
5.点击绿色箭头启动,查看第一个HTTP请求完成后的响应数据
6.第一个HTTP请求完成后的响应数据的url是随机变化的,每次HTTP请求完成后的响应数据的url是不同的,现在需要获取第一个HTTP请求完成后的响应数据的url作为第二个HTTP请求的IP地址,这个时候就需要用到正则表达式提取器,正则表达式提取器是一个后置处理器,作用是在请求完成后,从响应数据中截取一部分字符串保存到变量中,以便下一个请求使用。
7.现在编辑正则表达式提取器
8.说明:
(1)引用名称:作为下一个请求要引用的参数名称,如填写myurl,则可用${myurl}引用它来作为第二个HTTP请求的IP地址
(2)正则表达式用""包起来,如第一个HTTP请求完成后的响应数据{"status":"ok","message":"创建房间成功","data":{"url":"https://www.pp2pp.xyz/room/58ff022f5cd4c32ae9a7f457"}} 我们只需要URL,所以正则表达式为 "url":"https://(.+?)"
() 表示括起来的部分就是要提取的。
. 表示匹配任何字符串。
+ 表示一次或多次。
?表示不要太贪婪,在找到第一个匹配项后停止。
(3)模板:用$$引用起来,如果在正则表达式中有多个正则表达式,则可以是$2$,$3$等等,表示解析到的第几个值给myurl。如:$1$表示解析到的第1个值,我们这里只有一个正则表达式,所以是$1$
(4)匹配数字:0代表
随机取值,1代表全部取值,通常情况下填1
(5)缺省值:如果参数没有取得到值,那默认给一个值让它取,通常情况下为空
9.现在可以开始编辑第二个HTTP请求,
10.我们再来点击绿色箭头启动,查看这两个HTTP请求完成后的响应数据,可以看到第二个HTTP请求地址就是第一个HTTP请求的响应数据的URL
11.如果是要
获取第一个HTTP的响应数据的
URL地址的后面数字作为第二个HTTP的参数,做法也是一样的,只是正则表达式不一样,
如第一个HTTP请求完成后的响应数据{"status":"ok","data":{"url":"https://www.pp2pp.xyz/room/58ff022f5cd4c32ae9a7f457"}} 如果我们只需要URL后面的数字58ff022f5cd4c32ae9a7f457,那么正则表达式为 "url":"https://www.pp2pp.xyz/room/(.+?)"