背景:在接口测试中,时常会遇到短信验证码的获取及校验;一般的方法是:建议与开发沟通,设置万能验证码或是屏蔽校验逻辑代码,如果想挑战一下技术,那么就需要自己动手编写代码,这里主要介绍java的Scanner类来与jmeter进行交互输入验证码。
1、例一:两个接口请求,一个请求验证码返回,一个输入验证码校验,(这种情况只需关联即可)脚本结构如下:
tips:上面两种情况模拟正确和失败场景,jmeter场景设计,接口请求一般不会把验证码放在响应参数,这样是不安全的。
2、接下来例二:同样是两个接口,做的事情也一样,只有一个问题,验证码从哪里来?数据库?程序发送短信功能,在测试过程中,短信会发送到手机,同样也会入库(只考虑入库情况,因短信功能模块不同,不确定渠道商的短信处理方式)。先讲JMeter-通过jdbc元件从数据库获取验证的方式,脚本结构如下:
tips:脚本结构与上面比较,多了一个jdbc配置元件,json提取器换成了jdbc后置处理器;code的获取方式发生了改变。
3、再来讲JMeter脚本通过beanshell导入Scanner类编码实现从控制台获取code来校验,脚本结构如下:
tips: 通过一个beanshell取样器编写脚本,beanshell后置器会在java request之前执行(仅此①例)。以下附上beanshell代码:
//beanshell中导入Scanner扫描类
import java.util.Scanner;
//new一个扫描对象
Scanner scanner=new Scanner(System.in);
//给vars使用,所以给String类。亦或int类型,使用nextInt()方法
String messagecode=scanner.next();
//vars字符串的赋值,如果后面的不是String类型,就需要转toString()
vars.put("code",messagecode);
//关闭扫描流
scanner.close();
复制代码
4、以上是JMeter接口测试获得短信验证码的多种处理方式,为了安全起见,程序设计短信验证码是不会从接口返回的。
5、喜欢本文的朋友可以关注订阅号,对文章有任何疑问欢迎留言及指正,谢谢!
本文使用 文章同步助手 同步
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END