Jmeter(七):jmeter连接数据库/中元件的执行顺序&作用域详解

Jmeter:jmeter连接数据库

jmeter连接mysql数据库

大致步骤如下:

  1. 下载mysql的jar包放入到jmeter的lib下,然后重启jmeter
  2. 配置JDBC Connection Configuration
  3. 配置JDBC Request
  4. 在请求中引用查询到的结果变量,可以结合计数器取每一个结果值:${__V(tname_${index})}

同时,我也准备了一份软件测试视频教程(含接口、自动化、性能等),需要的可以直接在下方观看,或者直接关注VX公众号:互联网杂货铺,免费领取

软件测试视频教程观看处:

字节大佬教你逼自己如何在15天内掌握自动化测试(接口自动化/APP自动化/Web自动化/性能测试),内含项目实战

1、首先需要准备个Mysql jdbc驱动包

尽量保证其版本和你的数据库版本一致,至少不低于数据库版本,否则可能有问题。

mysql官网下载地址:csdn不让发

JDBC驱动在mysql的官网下载:https://dev.mysql.com/downloads/file/?id=477058,不需要注册,直接点击左下角的小字

2、在测试计划下面把JDBC驱动包导入,如下图

3、线程组下添加一个配置元件JDBC Connection Configuration。

Variable Name:自定义参数,在JDBC Request中会用到;

Database URL:jdbc:mysql:// 数据库IP地址:数据库端口/数据库名称;jdbc:mysql://localhost:3306/mysql?serverTimezone=UTC&characterEncoding=utf-8,注意:?后面的serverTimezone=UTC&characterEncoding=utf-8不能缺少,否则会报时区错误。

JDBC Driver Class:com.mysql.jdbc.Driver;

Username:数据库用户名;

Password:数据库密码;

4、在添加一个Sampler:JDBC Request

由于只需要在数据库中取一次数据,即 jdbc取样器只需要执行一次,可以使用仅一次控制器;如下图:

配置路径:逻辑控制器——仅一次控制器

5、运行之后,数据库会返回某一列下的数据

6、在http请求中引用tname变量名,如果有一列数据返回,引用变量的时候可以输入${tname_1},发送请求的参数值就是 周启元

variables names 参数使用方法:

Jmeter官网的解释是:如果给这个参数设置了值,它会保存sql语句返回的数据和返回数据的总行数。假如,sql语句返回2行,3列,且variables names设置为A,C,那么如下变量会被设置为:

A_#=2(总行数)

A_1=第1列,第一行;如上面的变量${tname_1};

A_2=第1列,第2行

C_#=2(总行数)

C_1=第3列,第1行

C_2=第3列,第2行

如果返回结果为0,那么A_#和C_#会被设置为0,其他变量不会设置值。

如果第一次返回6行数据,第二次只返回3行数据,那么第一次的6行数据变量会被清除

可以使用${A_#}、${A_1}...来获取相应的值

7、如果想循环数据库返回的值,可以使用计数器,加引用的变量${__V(tname_${index})};如下图

根据上方数据库返回的tname列下有9行数据,在计数器中最大值填入9,在输入一个变量名index;

在http请求中引用数据量返回的变量+计数器的变量:${__V(tname_${index})};

8、运行结果

Jmeter:jmeter中元件的执行顺序&作用域


元件的执行顺序:

配置元件-->前置处理程序-->定时器-->取样器-->后置处理程序(除非Sampler 得 到的返回结果为空)-->断言(除非Sampler 得到的返回结果为空)-->监听器 (除非Sampler 得到的返回结果为空)

关于执行顺序,有两点需要注意:

  • 前置处理器、后置处理器和断言等元件公能对 取样器作用,因此,如果在它们 的作用域内没有任何取样器,则不会被执行。
  • 如果在同一作用域范围内有多个同一类型的元件,则这些元件按照它们在测试计 划中的上下顺序一次执行

元件的作用域:类似于python中的全局变量和局部变量的概念

配置元件(config elements ) :元件会影响其作用范围内的所有元件。

前置处理程序(Per-processors):元件在其作用范围内的每一个sampler元件之 前执行。

定时器(timers ):元件对其作用范围内的每一个sampler 有效

后置处理程序(Post-processors):元件在其作用范围内的每一个sampler元件之 后执行。

断言(Assertions):元件对其作用范围内的每一个sampler 元件执行后的结果执 行校验。

监听器(Listeners):元件收集其作用范围的每一个sampler元件的信息并呈现。 总结:从各个元件的层次结构判断每个元件的作用域

写在最后

PS:这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助。除了基础入门的资源,博主也收集不少进阶自动化的资源,从理论到实战,知行合一才能真正的掌握。全套内容已经打包到网盘,内容总量接近500个G。如需要软件测试学习资料,关注公众号(互联网杂货铺),后台回复1,整理不易,给个关注点个赞吧,谢谢各位大佬!

☑ 240集-零基础到精通全套视频课程
☑ [课件+源码]-完整配套的教程
☑ 18套-测试实战项目源码
☑ 37套-测试工具软件包
☑ 268道-真实面试题
☑ 200个模板-面试简历模板、测试方案模板、软件测试报告模板、测试分析模版、测试计划模板、性能测试报告、性能测试报告、性能测试脚本用例模板(信息完整)

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值