Jmeter:如何从第一个请求获取第一个userID并转移到第二个请求相同的userId?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter:如何从第一个请求获取第一个userID并转移到第二个请求相同的userId?相关的知识,希望对你有一定的参考价值。

我有一个包含两个HTTP请求的脚本

1第一个请求是User Authentication.include userId .....

2:第二个请求还包括userId。

这两个参数是一致的。

如何从第一个请求获取第一个userID并转移到第二个请求相同的userId?

我想从第一个请求获取userID,而不是从响应中获取,响应主体不包含userId,将相同的userId传递给第二个请求。

这是第一个请求正文:

[

   {"productId":"5551",
   "userId":"${__RandomString(32,44e00d674dee4ff7a2d4f0081991b6d40Bs9Hc)}",
   "service":"200008",
   "app_system":"7.1.1",
   "equipmentId":"866935038314977",
   "app_devicetype":"vivo X20A",
   "app_platform":"android",
   "app_version":"3.1.3",
   "market":"icash_main"}
] 
答案

使用Extractors来共同处理您的请求和响应。

首先,您需要从第一个请求的响应中提取userID。

为此,请选择一个提取器(如果您的请求返回JSON响应,请使用JSON Extractor)并添加到您的第一个请求中。

其次,在使用提取器通过变量获取userId的值之后,您可以在后续请求中使用它。

编辑:

如果您想在两个请求中使用相同的userId,请在测试计划中使用User Defined Variables并在其中添加变量userID,如下所示:

enter image description here

在您的请求正文中使用userId的变量,如下所示:

{"productId":"5551",
   "userId":"${userId}",
   "service":"200008",
   "app_system":"7.1.1",
   "equipmentId":"866935038314977",
   "app_devicetype":"vivo X20A",
   "app_platform":"Android",
   "app_version":"3.1.3",
   "market":"icash_main"}

以下是使用相同userId的两个请求的请求主体

请求正文1:

enter image description here

请求2的正文:

enter image description here

以上是关于Jmeter:如何从第一个请求获取第一个userID并转移到第二个请求相同的userId?的主要内容,如果未能解决你的问题,请参考以下文章

jmeter关联下载文件简单压测

Jmeter(三)关联之正则表达式提取器

jmeter关联的常用方法(关联token)

性能工具之Jmeter一个脚本的编写与调试案例

使用Jmeter接口测试

axios 调用从第一个 api 获取响应并传递到第二个 api