Android 如何从响应消息中获取特定值,并在Jmeter的下一个请求中将其分配给另一个变量?

Android 如何从响应消息中获取特定值,并在Jmeter的下一个请求中将其分配给另一个变量?,android,api,jmeter,chat,performance-testing,Android,Api,Jmeter,Chat,Performance Testing,我正在尝试使用Jmeter对移动聊天应用程序进行性能测试。我正在尝试的场景是,在N个新用户注册过程中需要分析输出。我通过“CSV数据集配置”输入N个用户数据。其中提到变量名为“phone,ime” 对于每个新用户注册过程,应用程序将在调用API1时生成一次性密码。问题是,我需要从每个电话用户的API1响应消息中获取生成的一次性密码,并需要在调用API2时将该值分配给变量${code} 以下是API和参数的详细信息: API1:/api/users/registration sms.html? 1

我正在尝试使用Jmeter对移动聊天应用程序进行性能测试。我正在尝试的场景是,在N个新用户注册过程中需要分析输出。我通过“CSV数据集配置”输入N个用户数据。其中提到变量名为“phone,ime”

对于每个新用户注册过程,应用程序将在调用API1时生成一次性密码。问题是,我需要从每个电话用户的API1响应消息中获取生成的一次性密码,并需要在调用API2时将该值分配给变量${code}

以下是API和参数的详细信息:

API1:
/api/users/registration sms.html?
1) 名称:phone,值:${phone} 2) 名称:ime,值:${ime} 例子: 请求-发布数据:电话=917010370002&ime=e78b56418b55b32c 响应:
{“响应”:{“httpCode”:200,“消息”:“True”,“代码”:“5858”}

API2:
/api/users/registration sms verfy.html?
1) 名称:phone,值:${phone} 2) 名称:代码,值:${code} 注意:对于这个变量${code},我们需要从相应电话(917010370002)的API1(“code”:“5858”)响应消息中获取数据。

请为我提供可行的解决方案,以满足我的需求


提前感谢。

您可以使用常规的提取器后处理器,如

假设你的回答是

{"response":{"httpCode":200,"Message":"True","Code":"5858"}}
您的正则表达式将类似于提取代码值,但对于特定的phone no,您需要稍微修改它

"Code"\:"(\d+)"
对于事件详细信息,您可以提供所需的匹配号


请参阅

非常感谢您的快速回答。这对我帮助很大。但在调用API2时,我面临以下问题。(即)仅接收未找到的值。POST数据:phone=917010370010&code=Not Found。我的正则表达式如下,引用名称:code,正则表达式:“code”\:“(\d+”),模板:$1$,匹配号:1,默认值:未找到。期待您的回复。提前谢谢你。你能发布你的完整回复吗,这样我就可以相应地验证/修改正则表达式了?谢谢你的快速回复。API 1:API/users/registration-sms.html?请求是POST数据:phone=917010370003&ime=e78b56418b55b33c&country=91&gcm=,响应数据是{“Response”:{“httpCode”:200,“Message”:“True”,“Code”:“7491”}}}API2:/api/users/registration-sms-verfy.html?请求是POST数据:phone=917010370003&code=notfound,响应是{“Response”:{“httpCode”:“200”,“Message”:“True”}。问题在于调用API2时,代码变量值未从API1响应值(即7491)中获取。请检查并执行所需操作。我可以在响应字段中找到它,没有任何错误。检查您是否试图在收到响应之前提取该值(我的意思是尝试在请求和regex提取器之间插入延迟)。同一问题甚至将常量计时器增加到1000