Day14_Jmeter的数据库操作和提取数据

Day14_Jmeter的数据库操作和提取数据

1. 连接数据库

1.1 添加依赖
  • 把mysql-connector-java-5.1.49.jar包放在jmeter安装目录apache-jmeter-5.4.3\lib\ext目录下,重启jmeter.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JOY311Io-1657935298735)(D:\typora\img\1657857091782.png)]

1.2 创建数据库连接池

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GEJmZ9XH-1657935298737)(D:\typora\img\7abc18d0-6fb1-446a-bbcc-a682aa07aef1-12945687.jpg)]

1.3 配置数据库连接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XdfWT6rV-1657935298739)(D:\typora\img\8e005802-ecb7-4a26-a544-67ca913b73cb-12945687.jpg)]

1.4 发起数据库请求
  • 线程组->添加->取样器->jdbc request

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RM92Gn8s-1657935298740)(D:\typora\img\9b6948b0-5f32-45ad-acd2-3038a4ebb60a-12945687.jpg)]


1.5 调试后置处理程序
  • 新建后置处理, 用于调试数据库连接的响应信息, 获取数据的变量名用于取值

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QOM2w6X1-1657935298741)(D:\typora\img\1657865871055.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dI3r1Lze-1657935298742)(D:\typora\img\3469ca44-e43f-4088-b6f5-631c9895503a-12945687.jpg)]

1.6 遍历数据库
1.6.1 用ForEach控制器遍历数据库
  • 线程结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-96hC6HRA-1657935298743)(D:\typora\img\1657873985223.png)]

  • 新建ForEach控制器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dfihj5Mv-1657935298745)(D:\typora\img\1657866523874.png)]

  • 配置ForEach控制器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZSgbnzMa-1657935298747)(D:\typora\img\1657866910832.png)]

  • 在http请求中使用数据库参数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-arDm4vqc-1657935298748)(D:\typora\img\eb8211b1-d8b2-4548-83c8-531e38693425-12945687.jpg)]

  • 执行结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BvmUKBUT-1657935298750)(D:\typora\img\1657866222078.png)]

1.6.2 循环控制器和计数器遍历数据库
  • 线程结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s5w7yi6m-1657935298751)(D:\typora\img\1657874031511.png)]

  • 连接数据库查询多列数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eAOtwKsh-1657935298752)(D:\typora\img\cf485bc8-934a-4194-89f3-ed25de5f79c3-12945687.jpg)]

  • 新建循环控制器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UEZ5w00X-1657935298753)(D:\typora\img\1657868558383.png)]

  • 循环次数为最大id值

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yhcikGEM-1657935298754)(D:\typora\img\1657868978228.png)]

  • 添加计数器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F44qDuvz-1657935298755)(D:\typora\img\1657868623020.png)]

  • 设置计数器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jGhgxKhN-1657935298756)(D:\typora\img\e0335a42-d1fe-4f24-90f3-8880dfee2710-12945687.jpg)]

  • 使用函数生成器对话框生成v函数
    • v函数用于变量嵌套变量

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zSh3gzLI-1657935298757)(D:\typora\img\e0f7ba2d-fc3d-43bc-a0da-f5c9d37e19da-12945687.jpg)]

  • 添加java请求

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WFo9Dohp-1657935298759)(D:\typora\img\76f5b0ed-31da-47b8-be3b-be6f0de1dfd0-12945687.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FWvf3YAw-1657935298760)(D:\typora\img\1657869960892.png)]

  • java请求响应结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z4jmNbrQ-1657935298762)(D:\typora\img\1657870056764.png)]

  • 最后发起http请求

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YQqecbZ8-1657935298763)(D:\typora\img\1657870168450.png)]

2. 同一个线程组内提取数据

2.1 json提取
  • 例: 查询所有用户 --(数据的提取)-> 查询投资记录
  • 获取所要提取数据的json路径

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UwxHaEp7-1657935298764)(D:\typora\img\1657870604077.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tGktpPx5-1657935298767)(D:\typora\img\5a2a50e5-c010-4fd0-82df-bc76118785a6-12945687.jpg)]

  • 在请求中, 新建后置处理器->json提取器
  • 设置json提取器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1Xm9CKhk-1657935298769)(D:\typora\img\9042b07b-18e2-4a3d-bc8e-093699d19818-12945687.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jUt8odeP-1657935298773)(D:\typora\img\1657882322195.png)]

  • 两个请求

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LbOp1ATk-1657935298774)(D:\typora\img\28dd4901-7dc3-4345-ae86-6ebc85e07bf2-12945687.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EBdzAxrn-1657935298775)(D:\typora\img\a9172812-dc6e-4636-b4c3-5a9dfe58eb15-12945687.jpg)]

2.2 正则提取

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hZ4rnWQa-1657935298777)(D:\typora\img\1657871697238.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9zK1tLkx-1657935298779)(D:\typora\img\1657872144156.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uN1wn1DY-1657935298780)(D:\typora\img\1657872709809.png)]

2.3 提取数据(列表)
  • 将正则提取器的匹配数字改为-1(获取所有数据)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MeJy3Cpm-1657935298781)(D:\typora\img\af9683b3-8fe3-41d2-888b-37aa66701246-12945687-1657873136653.jpg)]

  • 新建调试后置处理程序, 用于查看数据的参数名

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7Hq2IDAW-1657935298782)(D:\typora\img\05620b63-f2d4-48e2-b40f-961af5754e23-12945687.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-exDGfbYD-1657935298784)(D:\typora\img\d4da058f-2d71-4310-9a52-b499a589c3ff-12945687.jpg)]

  • 新建foreach控制器循环操作每一个提取出来的数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5XQtq3N7-1657935298785)(D:\typora\img\846ef216-e8c0-44a1-b4d5-78b6c54c561c-12945687.jpg)]

  • 发起请求

]

3. 不同线程组提取数据

3.1 给第一个线程组添加BeanShell后置处理器
  • 第一个线程组:查询所有用户,提取第一个用户的电话

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ck8gAU7P-1658139912074)(D:\typora\img\61f7a798-8727-45f8-b352-96d09ddf0fe7-12945687.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-48KGhAax-1658139912085)(D:\typora\img\b7f4336c-2fc2-4dee-8045-13bf3553e958-12945687.jpg)]

  • 第二个线程组:充值, 此时的phone变量为局部变量

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k3PbNswR-1658139912086)(D:\typora\img\39599d04-96a2-4886-94ca-2717aced1552-12945687.jpg)]

  • 保证线程的执行顺序(先第一个再第二个)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-brEmeX7e-1658139912088)(D:\typora\img\db5be3c5-b04d-4e6a-978d-8b53201e851b-12945687.jpg)]

  • 响应结果是第二个线程组并不能获取第一个线程组提取的数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R6Gvj1QV-1658139912089)(D:\typora\img\1658107313569.png)]

  • 这是因为: json提取器或者正则表达式提取器的变量值是局部变量,只能在当前线程组使用,如果想跨线程组使用,需要把局部变量转为全局变量。
  • 步骤:
  1. 给第一个线程组的请求添加BeanShell后置处理器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ShkwH3HI-1658139912091)(D:\typora\img\1658107366383.png)]

  • 设置BeanShell, 将局部变量设置为全局变量

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JKcUROxH-1658139912092)(D:\typora\img\1658108959749.png)]

  • 但是第二个线程组依然获取不到BeanShell中的全局变量, 因为线程组默认使用局部变量, 因此需要用到P函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m6oxZb72-1658139912093)(D:\typora\img\1658107745256.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zNHlwR33-1658139912094)(D:\typora\img\1658107917296.png)]

  • 查看结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PZdXPGms-1658139912095)(D:\typora\img\1658108867500.png)]

3.2 给第二个线程组添加BeanShell前置处理器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cZXSL21B-1658139912096)(D:\typora\img\fc3c742c-2465-45bd-9705-a32af5b41c01-12945687.jpg)]

  • 第一个线程组不变, 给第二个线程组添加BeanShell前置处理器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eBxU7qCM-1658139912097)(D:\typora\img\5ecd7eac-094b-473a-9dcc-64ce50dc8ebf-12945687-1658109590935.jpg)]

  • 设置BeanShell前置处理器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-70Ak5VnA-1658139912099)(D:\typora\img\1658109028875.png)]

  • 第二个线程组的变量为BeanShell前置处理器设置的局部变量

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IAyhhpWC-1658139912099)(D:\typora\img\1658109064559.png)]

  • 查看结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i42zO1BG-1658139912101)(D:\typora\img\1658109081826.png)]


  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 使用Jmeter数据库中获取数据的原因是因为我们测试的软件项目所有的数据都存储在数据库中。通过连接数据库并发送SQL语句请求,我们可以进行增删改查操作,并查看执行SQL语句后的数据。\[1\]在使用Jmeter连接数据库时,需要添加适当的JDBC驱动包,并配置数据库连接池。然后,使用JDBC请求来执行SQL语句并获取数据。\[2\]\[3\]通过Jmeter连接数据库数据的具体步骤包括:连接数据库、发送SQL语句请求、获取执行SQL语句后的数据。可以根据具体的需求,使用不同的SQL语句来实现新增、更新、删除等操作。\[3\] #### 引用[.reference_title] - *1* *3* [Jmeter数据库中获取数据](https://blog.csdn.net/chen__an/article/details/86153279)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Jmeter连接数据库以及操作](https://blog.csdn.net/weixin_56394378/article/details/117199429)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值