jmeter】jmeter关联的常用方式有哪些以及具体操作

2021-04-23 13:42发布

3条回答
ban_gank
2楼 · 2021-04-25 10:18

一、Jmeter关联的方式:


Jmeter中关联可以在需要获取数据的请求上 右键–>后置处理器 选择需要的关联方式,如下图有很多种方法可以提取动态变化数据: 

 在LR中有自动关联跟手动关联,但在我看来手动关联更准确,在jmeter中,就只有手动关联


为什么要进行关联:对系统进行操作时,本次操作或下一次操作对服务器提交的请求,这参数里边有部分参数需要服务器返回动态变化的值,首先这个值是动态变化的其次是由服务器动态返回的再者会对请求结果产生影响


在jmeter中,关联有几种方法,①正则表达式②边界提取器③Json Extractor提取器


一,正则表达式:


当我要注册时有一个值是每次都是变化的:



name=“formhash” value=“0ab4d9ec” />


——————————————————————



name=“formhash” value=“11cc937d” />


所以需要对这个值进行一个关联


在你要关联的请求下右键点击添加-后置处理器-正则表达式提取器

 在正则表达式页面设置一下

 在模板1 11意思是,如果有多个动态变化的值,如在引用名称formhash,XXX,XXX,有三个值,那在模板上这样填1 112 223 33,但是建议不这样用容易出问题,如果说有多个动态变化的值需要关联那么直接多添加几个正则表达式提取器就可以了,然后在要关联的值里填入 ${formhash}


二,边界提取器: 



在Boundary Extractor提取器中是4.0版本新推的一个小功能,本人认为这个比正则最好用,跟LoadRunner关联的左边界右边界相似

看这个就知道它的左边界跟右边界是怎么填了name=“formhash” value=“11cc937d”


三,Json Extractor提取器:


当传数据返回的是一个Json格式,如{“name”:“sojson”,“url”:“www.sojson.com”}这样的格式又或者是如下


{

“技术使用”: [


“SpringMVC”,


"Mybatis ",


List item


“Freemarker”,


“Shiro”


],


“数据存储”: [


“Redis”,


“RDS”,


“七牛云存储”


]


}


那就要用json方式来关联了


同样的在你要关联请求右键点击添加—后置处理器—JSON Extractor

 进入JSON Extractor页面



风中浪子
3楼 · 2021-04-26 14:05

①正则表达式

②边界提取器

③Json Extractor提取器

 一、Jmeter关联的方式:

  Jmeter中关联可以在需要获取数据的请求上 右键-->后置处理器 选择需要的关联方式,如下图有很多种方法可以提取动态变化数据:  

  

二、正则表达式提取器:

  1、比如需要提取如下响应文本中的 “<a style='color:#2f2f2f;cursor:pointer;' href='http://www.baidu.com'>百度</a>一下,你就知道” 里面的 “百度一下,你就知道”:

  

  2、设置正则表达式提取器:

  

  说明:

  (1)引用名称:下一个请求要引用的参数名称,如填写title,则可用${title}引用它。

  (2)正则表达式:

    ():括起来的部分就是要提取的。

    .:匹配任何字符串。

    +:一次或多次。

    ?:不要太贪婪,在找到第一个匹配项后停止。

  (3)模板:用$$引用起来,如果在正则表达式中有多个正则表达式,则可以是$2$$3$等等,表示解析到的第几个值给title。如:$1$表示解析到的第1个值

  (4)匹配数字:0代表随机取值,1代表全部取值,通常情况下填0

  (5)缺省值:如果参数没有取得到值,那默认给一个值让它取。

  3、使用2中获取到的值:

  

三、关于正则表达式的举例说明:

  1、提取单个字符串:
    假如想匹配Web页面的如下部分:name = "file" value = "readme.txt">并提取readme.txt。一个合适的正则表达式:name = "file" value = "(.+?)">。
      ():封装了待返回的匹配字符串。
      .:匹配任何单个字符串。
      +:一次或多次。
      ?:不要太贪婪,在找到第一个匹配项后停止。

  2、提取多个字符串:
    假如想匹配Web页面的如下部分:name = "file.name" value = "readme.txt">并提取file.name和readme.txt。一个合适的正则表达式:name = "(.+?)" value = "(.+?)"。这样就会创建2个组,分别用于$1$和$2$

  比如:

    引用名称:MYREF
    模板:$1$$2$

   如下变量的值将会被设定:
    MYREF:     file.namereadme.txt
    MYREF_g0:   name = "file.name"value = "readme.txt"
    MYREF_g1:  file.name
    MYREF_g2:  readme.txt

  在需要引用地方可以通过:${MYREF}, ${MYREF_g1进行使用。


相关问题推荐

  • 回答 3

    做梯度压力测试,当你发现响应时间下降超过10%的那个压力点,基本上就是性能瓶颈点了。当然还可以直接压崩。然后给一个极值。但是通常这个值 没用。

  • 回答 2

    主要从架构上登录过程的实现,能否支持同一账号多处登录,是架构考量的,一般的系统除非对session做持久化和帐号绑定。否则肯定同一账号多个会话是支持的。更多详细还要看你的架构实现。不过一点可以确认从数据库和中间件缓存来看,命中一定会比不同数据要高...

  • 回答 4

    、修改jmeter.properties文件,打开一些输出内容开关(下图根据需要选择相关项,具体就不用多说了吧)2、制定一份自己的输出模板。(不用默认的jmeter_home/extras/jmeter-results-detail-report.xsl模板,也可以网上自己找份。)3、最后执行,生成对应的HTML...

  • 回答 4

    1) 配置元件(config elements):http请求默认值、http信息头管理器、CSV Data Set Config  2) 前置处理程序(Pre-processors):用户参数  3) 定时器(timers):同步定时器和常量吞吐定时器  4) 取样器(Sampler):http请求、JDBC Request、FTP请求....  5) ...

  • 回答 5

    首先第一步要导入mysql驱动包一、添加JDBC Connection Configuration设置链接Database URL: jdbc:mysql:// 数据库地址 /库名JDBC Driver class:com.mysql.jdbc.DriverUsername:账号Password:密码二、添加JDBC Reques三、在http请求中加入变量username_id_N...

  • 回答 3

    再今天重新学习,从数据库中取数据,并作为变量传到下一个请求中。首先第一步要导入mysql驱动包  一、添加JDBC Connection Configuration设置链接Database URL: jdbc:mysql:// 数据库地址 /库名JDBC Driver class:com.mysql.jdbc.DriverUsername:账号Pass...

  • 回答 5

    一、CSV 参数化1、我们做性能测试需要并发多个用户,为了真实模拟用户行为,我们需要模拟多个不同的用户登录,这是我们就需要进行参数化。这里我们选择比较常用的参数化方法-CSV Data Set Config首先打开CSV Data Set Config2.新建cvs文件放在和脚本同一个目...

  • 回答 2
    已采纳

    看看这个思维导图能帮助到你吗

  • 回答 4

    早期的开关量控制装置就是继电器逻辑控制,后来有电子技术了,开关量控制装置开始采用电子技术模仿继电逻辑,比较典型的就是比较典型的就是可编程序控制器(PLC),此外还有各种开关电路组成的控制器、以单片机为核心器件的控制器等,很多,其基本原理都是源...

  • 回答 5

    几乎所有编程语言就是在变量中存储值,并且能读取和修改此值。事实上,在变量中存储值和取出值的能力,给程序赋予了状态。 如果没有这样的概念,一个程序虽然可以执行一些任务,但是它们将会受到极大的限制而且不会非常有趣。...

  • 回答 8

    断言是编程术语,表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新启用断言。使用断言可以创建更...

  • 回答 5

    ①仔细阅读 接口说明/设计文档。将每个接口当成被测功能点来理解。接口也有功能、性能、安全等测试。②设计接口测试方案,比如确定要使用的接口测试工具。③设计接口测试用例(和功能测试设计用例的方法一样,运用等价类、边界值、正交试验法等黑盒测试方法)。...

  • 回答 9
    已采纳

    1、Postman是谷歌的一款接口测试插件,它使用简单,支持用例管理,支持get、post、文件上传、响应验证、变量管理、环境参数管理等功能,可以批量运行,并支持用例导出、导入。2、jmeter是一款100%纯Java编写的免费开源的工具,它主要用来做性能测试,相比load...

  • 回答 2

    1.首先需要开发提供给我们接口文档,样子如下。需要指出 接口的类型,这里是POST。还需要指出接口的地址,这里就是黑色框中的URL地址。2. 需要下载一个 postman,我的是windows 7 64bit,可以去官网下载一个最新版本。...

没有解决我的问题,去提问