jmeter 如何将上一个请求的结果作为下一个请求的参数——使用正则提取器
2015-12-30 17:49
417 查看
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.完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样。
5.精心的GUI设计允许快速操作和更精确的计时。
6.缓存和离线分析/回放测试结果。
3、下载、简单应用
下载、简单应用可参照:/article/5224879.html
4、如何将上一个请求的结果作为下一个请求的参数
在压力测试的时候,经常要将几个流程串联起来才能将程序测试通过。如:我现在用户首先要登录,获得我登录的凭证(tokenId),之后我的请求其他的资源的时候需要带上这个凭证。才能识别你是否是合法的用户。
1)、创建一个线程租
2)、创建一个获取凭证的请求
3)、创建后置处理器
JMeter GUI 视图中右击该采样器打开右键菜单 -> 添加 -> 后置处理器 -> 正则表达式提取器,打开"正则表达式提取器"会话页面并编辑其内容如下:
后置处理器是当这个请求返回后要做得事情,我这里是要从返回的内容中将我们要的tokenId获取出来。这里使用“正则表达式提取器”,用正则表达式,将我们要的内容获取出来。
4)、正则表达式提取器配置
引用名称是下个请求将要引用到的变量名;
正则表达式是提取你想要内容的正则表达式,小括号()表示提取,也就是说对于你想要提取的内容需要用它括起来;
模板是使用提取到的第几个值。因为可能有多个值匹配,所以要使用模板。从 1 开始匹配,依次类推。这里只有一个,所以填写 $1$ 即可;
匹配数字表示如何取值。0 代表随机取值,1 代表全部取值。这里只有一个,填 1 即可;
缺省值表示参数没有取到值的话,默认给它的值。一般不填。
这个请求返回的数据如下:
我们现在要获取的是上面这个json字符串中tokenId的值,即 bf1017bc1bb495ae31764b306a3422885f5 。
5)、添加下一个请求
在这个请求中,我们要将上面的tokenId作为一个参数一并发送。
同上2)、添加一个http请求(线程租右键——》添加——》Sampler——》HTTP请求)
6)、添加查看结果树
7)、执行后,即可通过”查看结果树“查询
致谢:感谢您的阅读!
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.完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样。
5.精心的GUI设计允许快速操作和更精确的计时。
6.缓存和离线分析/回放测试结果。
3、下载、简单应用
下载、简单应用可参照:/article/5224879.html
4、如何将上一个请求的结果作为下一个请求的参数
在压力测试的时候,经常要将几个流程串联起来才能将程序测试通过。如:我现在用户首先要登录,获得我登录的凭证(tokenId),之后我的请求其他的资源的时候需要带上这个凭证。才能识别你是否是合法的用户。
1)、创建一个线程租
2)、创建一个获取凭证的请求
3)、创建后置处理器
JMeter GUI 视图中右击该采样器打开右键菜单 -> 添加 -> 后置处理器 -> 正则表达式提取器,打开"正则表达式提取器"会话页面并编辑其内容如下:
后置处理器是当这个请求返回后要做得事情,我这里是要从返回的内容中将我们要的tokenId获取出来。这里使用“正则表达式提取器”,用正则表达式,将我们要的内容获取出来。
4)、正则表达式提取器配置
引用名称是下个请求将要引用到的变量名;
正则表达式是提取你想要内容的正则表达式,小括号()表示提取,也就是说对于你想要提取的内容需要用它括起来;
模板是使用提取到的第几个值。因为可能有多个值匹配,所以要使用模板。从 1 开始匹配,依次类推。这里只有一个,所以填写 $1$ 即可;
匹配数字表示如何取值。0 代表随机取值,1 代表全部取值。这里只有一个,填 1 即可;
缺省值表示参数没有取到值的话,默认给它的值。一般不填。
这个请求返回的数据如下:
{"message":"success","statusCode":200,"registerDay":"20","tokenId":"bf1017bc1bb495ae31764b306a3422885f5"}
我们现在要获取的是上面这个json字符串中tokenId的值,即 bf1017bc1bb495ae31764b306a3422885f5 。
5)、添加下一个请求
在这个请求中,我们要将上面的tokenId作为一个参数一并发送。
同上2)、添加一个http请求(线程租右键——》添加——》Sampler——》HTTP请求)
6)、添加查看结果树
7)、执行后,即可通过”查看结果树“查询
致谢:感谢您的阅读!
相关文章推荐
- redis 基础
- jQuery学习--jQuery CSS 操作
- java基础篇
- HTML5 postMessage 跨域交换数据
- 多线程下载资源
- 第十二章 非对称加密算法-RSA
- this.standing
- 第十一周 哈夫曼树
- 记一次计算机网络工程实验(2) 配置交换机
- ld: library not found for -lPods clang: error: linker command failed with exit code 1 (use -v to see
- error the @annotation pointcut expression is only supported at Java 5 compliance level or above
- Nginx配置文件nginx.conf中文详解
- Spring3自定义环境配置 <beans profile="">
- hibernate4 入门
- 惊艳的App引导页:背景图片切换加各个页面动画效果
- Android应用开发--MP3音乐播放器代码实现(一)
- scala flatMap为何能过滤掉Option中的None
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- 《需求分析与系统设计》阅读笔记四
- namenode ha