JMeter+Scanner类实现游戏验证码有哪些方式?
Posted diuxie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JMeter+Scanner类实现游戏验证码有哪些方式?相关的知识,希望对你有一定的参考价值。
背景:在接口测试中,时常会遇到短信验证码的获取及校验;一般的方法是:建议与开发沟通,设置万能验证码或是屏蔽校验逻辑代码,如果想挑战一下技术,那么就需要自己动手编写代码,这里主要介绍java的Scanner类来与jmeter进行交互输入验证码。
1、例一:两个接口请求,一个请求验证码返回,一个输入验证码校验,(这种情况只需关联即可)脚本结构如下:
tips:上面两种情况模拟正确和失败场景,jmeter场景设计,接口请求一般不会把验证码放在响应参数,这样是不安全的。
2、接下来例二:同样是两个接口,做的事情也一样,只有一个问题,游戏验证码从哪里来?数据库?程序发送短信功能,在测试过程中,短信会发送到手机,同样也会入库(只考虑入库情况,因短信功能模块不同,不确定渠道商的短信处理方式)。先讲JMeter-通过jdbc元件从数据库获取验证的方式,脚本结构如下:
tips:脚本结构与上面比较,多了一个jdbc配置元件,json提取器换成了jdbc后置处理器;code的获取方式发生了改变。
3、再来讲JMeter脚本通过beanshell导入Scanner类编码实现从控制台获取code来校验,脚本结构如下:
tips: 通过一个beanshell取样器编写脚本,beanshell后置器会在java request之前执行(仅此①例)。以下附上www.sangpi.combeanshell代码:
//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接口测试获得短信验证码的多种处理方式,为了安全起见,程序设计短信验证码是不会从接口返回的。
以上是关于JMeter+Scanner类实现游戏验证码有哪些方式?的主要内容,如果未能解决你的问题,请参考以下文章