jmeter使用jdbc获取注册验证码进行注册
Posted 虎皮猫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jmeter使用jdbc获取注册验证码进行注册相关的知识,希望对你有一定的参考价值。
自动化工具测试注册功能时,往往会遇到验证码,这个烦人的验证码怎么能够解决掉呢?
通常有两种方法
- 让开发禁用注册码,或在测试环境写个固定的验证码
- 在jmeter中用 jdbc获取数据库中验证码
今天通过一个实例给大家介绍一下第二种方法
首先我们的整理思路是这样的:
1.随机的手机号码
2.获取该手机号码的数据库验证码
3.手机号+验证码,发送请求
4.注册成功
(一)获取数据库中的数据
添加 DBC Connection Configuration
右键线程组->添加->配置元件->JDBC Connection Configuration
不同数据库具体的填写方式,可以参考下面的表格:
Datebase |
Driver class |
Database URL |
com.mysql.jdbc.Driver |
jdbc:mysql://host:port/{dbname} |
|
PostgreSQL |
org.postgresql.Driver |
jdbc:postgresql:{dbname} |
Oracle |
oracle.jdbc.driver.OracleDriver |
jdbc:oracle:thin:user/pass@//host:port/service |
Ingres (2006) |
ingres.jdbc.IngresDriver |
jdbc:ingres://host:port/db[;attr=value] |
MSSQL |
com.microsoft.sqlserver.jdbc.SQLServerDriver 或者 net.sourceforge.jtds.jdbc.Driver |
jdbc:sqlserver://IP:1433;databaseName=DBname 或者 jdbc:jtds:sqlserver://localhost:1433/"+"library"
|
我这边测试用的是mysql数据库,值得注意的是mysqll数据库需要指出本机的数据库实例的名称,例如如果实例叫mysql,那么,rul为:jdbc:mysql://localhost:3306/mysql
(二)设置变量
分析整体思路,我们可以看出来,在这个实例中需要两个变量,一个是手机号,一个是验证码,其中只有验证码是需要从数据库获取的
1.我们先处理简单的,设置手机号这个变量,我这里命名为account
右键线程组->添加->配置元件->用户定义的变量
利用jmeter自带的函数即可设置手机号这个随机变量,如图所示,我这里设置的account即手机号是13000000000~13999999999随机
2.接着我们再来处理较为复杂的验证码这个变量,我这里设置的变量名是ACTIVE_CODE
右键线程组->添加->Sampler->JDBC Request
注意Variable Name要和JDBC Connection Configuration中Variable Name一致,否则将获取不到这个变量的值
然后我们再看JDBC Request中查询ACTIVE_CODE这个变量值的sql
SELECT ACTIVE_CODE FROM uc_user_active WHERE EXCHANGE_ID=\'108991\'and ACCOUNT=${ACCOUNT};根据手机号码查询验证码,由于手机号码也是一个变量,所以我们where条件语句的写法是ACCOUNT=${ACCOUNT},当然这里你也可以设置手机号码为固定值去验证这个验证码是否获取成功
(三)录制脚本
当数据库和变量都设置好之后,我们通过jmeter自带的录制功能,录制发送验证码和注册这两个请求
我们可以看到录制下来的请求参数,其中cellPhone(注册手机号),和account的值是相等的,我们设置这个变量的参数值为${ACCOUNT}
参数 设置完成之后,我们可以运行一下,看看验证码是否能够获取成功,查看结果树,这个验证码获取成功了,验证码是805173
接着我们再看注册这个请求,正确的参数填写应该是这样,这里有个地方要注意,当使用jdbc request的结果作为参数时,要写成${ACTIVE_CODE_1}这样子,1代表你查出来的数据第一行,想取第几行就把1改成几,这和用户自定义的变量稍微有点区别
(四)运行脚本
以上操作都完成以后,我们就可以试测试一下我们的脚本是否可靠,运行脚本,查看结果数和数据库,我们可以看到已经注册成功
以上是关于jmeter使用jdbc获取注册验证码进行注册的主要内容,如果未能解决你的问题,请参考以下文章