jmeter中mail reader sampler邮件层级多,正则表达式提取器(regular expression extror)无法提取,使用BeanShellPostProcessor解决
2016-11-09 17:37
363 查看
问题描述:
1、jmeter通过“MailReader Sampler”连接服务器,将发送到邮箱的包含注册验证码邮件下载到jmeter中,在邮件中提取验证码,进行后续注册验证,即:
![](http://img.blog.csdn.net/20161109172937007?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2、使用“正则表达式提取器”进行验证码提取:
![](http://img.blog.csdn.net/20161109173028533?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
结果无法取到验证码;
3、使用“BeanShellPostProcessor”解决:
![](http://img.blog.csdn.net/20161109173104002?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
在“script”中编写代码:
String response =prev.getSubResults()[0].getSubResults()[0].getSubResults()[0].getResponseDataAsString();
vars.put("response",response.substring(70,76));
![](http://img.blog.csdn.net/20161109173244690?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
说明:
“prev”- is a shorthand for previous sampleresult. It returns Mail Reader Sampler
first getSubResults()[0] - stands forMessage 1.
second getSubResults()[0] - upper Part 0
third getSubResults[0] - Part 0 which I'mlooking for
vars.put("response", response.substring(70,76)) -stores message content as "response" variable. You can apply assertionon JMeter Variable as well.
FROM:http://jmeter.512774.n5.nabble.com/Question-about-mail-reader-sampler-td5721461.html
在之后的线程中引用参数:${response},即可取到验证码;
response.substring(70,76):这是邮件正文开头到验证码前字符数量统计,总计69个,包括空格,符号:
“<h3>尊敬的用户您好:</h3><br><PRE> 您于2016年11月09日
15时42分47秒提交的账户安全邮箱验证,验证码为:733486”
上面标红的字符即为69个,汉字也按一个字符进行计算
![](http://img.blog.csdn.net/20161109173515582?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
参考:http://jmeter.512774.n5.nabble.com/Question-about-mail-reader-sampler-td5721461.html
1、jmeter通过“MailReader Sampler”连接服务器,将发送到邮箱的包含注册验证码邮件下载到jmeter中,在邮件中提取验证码,进行后续注册验证,即:
2、使用“正则表达式提取器”进行验证码提取:
结果无法取到验证码;
3、使用“BeanShellPostProcessor”解决:
在“script”中编写代码:
String response =prev.getSubResults()[0].getSubResults()[0].getSubResults()[0].getResponseDataAsString();
vars.put("response",response.substring(70,76));
说明:
“prev”- is a shorthand for previous sampleresult. It returns Mail Reader Sampler
first getSubResults()[0] - stands forMessage 1.
second getSubResults()[0] - upper Part 0
third getSubResults[0] - Part 0 which I'mlooking for
vars.put("response", response.substring(70,76)) -stores message content as "response" variable. You can apply assertionon JMeter Variable as well.
FROM:http://jmeter.512774.n5.nabble.com/Question-about-mail-reader-sampler-td5721461.html
在之后的线程中引用参数:${response},即可取到验证码;
response.substring(70,76):这是邮件正文开头到验证码前字符数量统计,总计69个,包括空格,符号:
“<h3>尊敬的用户您好:</h3><br><PRE> 您于2016年11月09日
15时42分47秒提交的账户安全邮箱验证,验证码为:733486”
上面标红的字符即为69个,汉字也按一个字符进行计算
参考:http://jmeter.512774.n5.nabble.com/Question-about-mail-reader-sampler-td5721461.html
相关文章推荐
- VS2010中使用正则表达式替换时无法使用回车符的解决方法
- 常用的正则表达式 使用RegularExpressionValidator验证
- VS2010中使用正则表达式替换时无法使用回车符的解决方法
- Qt5.0 正则表达式 QRegularExpression 的使用
- RegularExpressionValidator控件中正则表达式用法一
- asp.net中RegularExpressionValidator控件中正则表达式用法
- RegularExpressionValidator控件中正则表达式用法~
- 带正则表达式编辑器的RegularExpressionValidator[ASP.NET2.0 Server Control]
- 使用OWA无法撰写邮件内容的解决法
- RegularExpressionValidator控件中常见正则表达式用法
- 使用RegularExpressionValidator验证控件时的验证功能及其验证表达式介绍
- [笔记]如何使用正则表达式提取字符串中的分隔元素
- 带正则表达式编辑器的RegularExpressionValidator[ASP.NET2.0 Server Control]
- RegularExpressionValidator控件中常见正则表达式用法
- Regular expression notation(正则表达式)
- RegularExpressionValidator控件中正则表达式用法二
- 关于在使用Exchange2003系统时无法向sina,yahoo,hotmail等邮箱发送邮件问题的解决方法
- 正则表达式关于电话和邮箱在RegularExpressionValidator 中的验证
- 在使用RegularExpressionValidator验证控件时的验证功能及其验证表达式
- ShoppingPlatForm-----Register.aspx(javascript二级联动下拉框;会员注册页面;验证控件;正则表达式)RegularExpressionValidator控件;RequiredFieldValidator控件;RadioButtonList控件;CompareValidator控件;input标签;select标签