如何从Jmeter中的电子邮件内容中获取价值

时间:2017-06-18 07:46:09

标签: jmeter web-api-testing

我正在使用IMAP使用BeanShell采样器读取电子邮件内容。我能够阅读电子邮件内容并能够存储在变量中。

现在我正在寻找一种解决方案,从电子邮件内容中读取特定值并存储在另一个变量中。请告诉我处理这种情况的最佳方法。

在以下回复中,我想存储网址中随机生成的ID:https://abc.abc.in/abc/verification.html?5f3a59b8-f1af-4951-8ca4-2836c4307838

即:5f3a59b8-f1af-4951-8ca4-2836c4307838

示例回复电子邮件内容:

 Sehr geehrte / r Daitha1 Shankar11354262,
                Willkommen bei XXXXXXXXXXX
Es wurde ein neuer ON!TrackBenutzerzugangfürSieerstellt。 Um den Zugang zu aktivieren,bestätigenSiebitte Ihre E-Mail Adresse,indem Sie auf folgenden Link klicken:

https://abc.abc.in/abc/verification.html?5f3a59b8-f1af-4951-8ca4-2836c4307838  

AusSicherheitsgründenistdieser Link nur 24Stundengültig。




















Ihr Benutzername lautet shankar@api.com

Gehen Sie zur Seite?Passwort vergessen?

MitbestenGrüßen,
Ihr QA团队


Email Content

2 个答案:

答案 0 :(得分:1)

如果要将电子邮件内容保存到Beanshell Sampler中的JMeter变量中,请说“myEmailContent”。尝试按照以下步骤提取ID。

1)将正则表达式提取器添加到Bean shell sampler。并检查Appy中的JMeter变量到section并提供您的JMeter变量名称。

2)在正则表达式中添加“ verification.html \?(。*)< ”,并提供一个引用变量“ID”。

3)使用vars.get(“ID”)根据您的采样器检索beanshell采样器或$ {ID}中的值。

enter image description here

注意:我根据您的屏幕截图给出了正则表达式。移除“<”如果没有必要的话。

答案 1 :(得分:0)

关于你的问题本身,

  1. 添加Regular Expression Extractor作为Beanshell Sampler的子项
  2. 按如下方式配置:

    • 申请 - > JMeter变量 - >电子邮件内容变量参考名称
    • 参考名称:任何有意义的内容,即id
    • 正则表达式:https://abc.abc.in/abc/verification.html\?([a-f\d]{8}-[a-f\d]{4}-[a-f\d]{4}-[a-f\d]{4}-([a-f\d]){12})
    • 模板:$1$
  3. 一般来说:

    1. JMeter附带Mail Reader Sampler,因此您无需编写脚本即可通过IMAP协议阅读邮件,请参阅How to Create a JMeter Script to Check Email During Registration AND Grab the Confirmation URL例如用例。
    2. 如果您“必须”使用脚本来克服JMeter限制,请考虑使用JSR223 SamplerGroovy language,因为Beanshell性能不是很好,它可能成为您测试的瓶颈。