嗨,我通过一个电子邮件,这是一个时间功能如下
email = ${__time(MMddyy)}_${__time(HMS)}@yopmail.com
字符串
这个函数的值每次我调用变量email时都会改变。我想将这个函数生成的值存储到一个变量中,并在其他请求中使用它。
因此,目前我在两个不同的http请求中收到两封不同的电子邮件,因为我的两个http请求之间存在一些时间差。
我想做的是通过从请求中提取值来存储在第一HTTP请求中发送的电子邮件,并在第二HTTP请求中传递该值。
POST data:
email=062915_160738%40yopmail.com
型
我知道从html响应中提取的方法。但是有没有办法从jmeter中的request中提取呢?
如果是这样,有人能告诉我如何实现这一点?
谢谢你
6条答案
按热度按时间xwmevbvl1#
1.添加一个Beanshell PostProcessor作为发送POST请求的子请求
1.将以下代码放入后处理器的“脚本”区域
字符串
1.必要时,将生成的值称为
${EMAIL}
。澄清:
email
请求参数的值(如果有)并将其存储到EMAIL
JMeter变量ctx
-JMeterContext类示例的简写vars
= JMeterVariables类示例的简写Arguments
和Argument
-您可以从JMeterContextJavaDoc中找到答案有关JMeter中Beanshell脚本的更多信息,请参见How to use BeanShell: JMeter's favorite built-in component指南。
wlsrxk512#
您可以将时间戳值存储在一个变量中,而不是整个电子邮件,然后使用此时间戳变量在任何您想要的地方创建电子邮件。这样你就可以在任何地方都有相同的电子邮件。
mlmc2os53#
添加Beanshell PostProcessor并添加以下脚本:
字符串
这里我们得到json格式的输出:
型
现在使用jp@gc Json Path Extractor提取email的值
型
并将值存储在
email_value_extacted
中现在在任何你想使用的地方使用变量
${email_value_extacted}
。最后,型
zpgglvta4#
是HTTP Sampler吗?如果是这样,只需在beanshell后处理器中输入:
字符串
也适用于任何采样器:
型
ecbunoof5#
您可以使用正则表达式提取器从请求URL中提取电子邮件地址。
添加正则表达式提取器作为发送post请求的采样器的子项。在正则表达式提取器中,选择响应字段中的URL进行检查,而不是选择Body。
您应该能够以这种方式从请求中提取电子邮件ID。
gmol16396#
添加Beanshell PostProcessor &添加以下脚本:
字符串
你会得到这样的json:
型
现在添加jp@gc - Add Dummy Subresult并在Response Data字段中添加${req_Json}。
现在添加JSON Extractor &选择Sub-samples only单选按钮&在JSON Path表达式中添加
$.emailAddress
&提供变量名称&使用新创建的变量,您可以访问电子邮件地址。