Jmeter(六) - 从入门到精通 - 建立数据库测试计划(详解教程)

这篇具有很好参考价值的文章主要介绍了Jmeter(六) - 从入门到精通 - 建立数据库测试计划(详解教程)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.简介

   在实际工作中,我们经常会听到数据库的性能和稳定性等等,这些有时候也需要测试工程师去评估和测试,因此这篇文章主要介绍了jmeter连接和创建数据库测试计划的过程,在文中通过示例和代码非常详细地介绍给大家,希望对各位小伙伴和童鞋们的学习或者工作具有一定的指导和参考学习价值,遇到类似的问题脑子一片空白的童鞋们可以参考一下。

2.建立数据库测试计划

  在本节中,您将学习如何创建基本的测试计划以测试数据库服务器和操作数据库(增、删、改、查)。本示例使用MySQL数据库驱动程序。要使用该驱动程序,必须将其包含的.jar文件(例如mysql-connector-java-XXX-bin.jar)复制到JMeter ./lib目录。

2.1新建测试计划

首先启动JMeter我们新建一个测试计划,如下图所示:Jmeter(六) - 从入门到精通 - 建立数据库测试计划(详解教程),jmeter,数据库,软件测试,程序人生,自动化测试,python,功能测试

2.2添加用户

新建完测试计划以后,我们前边也讲过了,这时候就要添加用户了。你要对每个JMeter测试计划进行的第一步是添加一个线程组(用户)。线程组告诉JMeter您要模拟的用户数量,用户应多久发送一次请求以及应发送多少次请求。

添加用户的步骤:首先选择“测试计划”来添加ThreadGroup元件,单击鼠标右键以获得“ 添加”菜单,然后选择“ 添加”  →“  ThreadGroup”。

添加完用户以后,你应该在“测试计划”下可以看到“线程组”元素。如果没有看到该元素,则通过单击“测试计划”元素前边的“ ”来展开 “测试计划”树,就可以看到你添加的用户了。

最后,你需要修改默认属性(如果需要修改,不需要修改默认即可)。如果尚未选择线程组元素,则在树中选择它。那么你就可以在“ JMeter”窗口的右侧部分中看到“线程组控制面板”,如下图所示:Jmeter(六) - 从入门到精通 - 建立数据库测试计划(详解教程),jmeter,数据库,软件测试,程序人生,自动化测试,python,功能测试

2.3添加JDBC连接配置

通过上边的操作,我们已经定义了用户,然后我们必须定义这些用户所要去的目的地,和目的地建立联系。不要这些用户累死累活的干了半天的活,知不道是为谁干得活。在本部分中,你需要和目的地建立联系。

具体步骤:首先选择ThreadGroup元件。单击鼠标右键获得“ 添加”菜单,然后选择“ 添加”  →“  配置元素”  →“  JDBC连接配置”。然后,选择此新元件以查看其控制面板。我们需要设置一些字段,这些字段相当于谍战片中的接头暗号,例如:《智取威虎山》杨子荣与坐山雕的接头暗号:脸红什么?精神焕发。怎么又黄拉?度防冷涂的蜡;长江长江我是黄河,等等。暗号对上了,才可以建立联系。否则认为有危险,不是建立联系,具体在测试中的表现就是报错了!!!

设置以下字段(这些假设我们将使用名为“hongge ” 的MySQL数据库):

  • Variable Name(绑定到池的变量名称):该名称自定义,在JDBC Request会用到;这需要唯一地标识配置。JDBC Sampler使用它来标识要使用的配置。
  • Database URL(数据库URL):jdbc:mysql:// 数据库IP地址:数据库端口/数据库名称(例如宏哥本地搭建MySQL:jdbc:mysql://localhost:3306 / hongge)
  • JDBC Driver Class(JDBC驱动程序类):com.mysql.jdbc.Driver
  • Username(用户名)数据库连接的用户名
  • Password(密码):数据库连接的密码

注意:敲脑壳,敲黑板啦!!!

JMeter使用“控制面板”中指定的配置设置创建数据库连接池。在“ 变量名 ”字段的JDBC请求中引用该池。可以使用几种不同的JDBC Configuration元素,但是它们必须具有唯一的名称。每个JDBC请求必须引用一个JDBC配置池。一个以上的JDBC请求可以引用同一个池。

连接配置的控制面板的其他字段可以保留为默认值。如下图所示:Jmeter(六) - 从入门到精通 - 建立数据库测试计划(详解教程),jmeter,数据库,软件测试,程序人生,自动化测试,python,功能测试

2.4添加JDBC请求

通过上边的操作,我们已经定义了用户并且已经知道目的地和接头人建立了联系之后,然后我们就需要给这些用户分配具体的任务了(谁负责监视,谁负责刺杀,谁负责放哨)。在本部分中,你将指定要执行的JDBC请求(刺杀任务)。

具体步骤:选择ThreadGroup元件。单击鼠标右键获得“ 添加”菜单,然后选择“ 添加”  →“  采样器”  →“  JDBC请求”。然后,选择此新元素以查看其控制面板。

JMeter按照将请求添加到树中的顺序发送请求。

首先编辑以下属性

  • Variable name:这里写入数据库连接池的名字(和JDBC Connection Configuration名字保持一致 )
  • Query:里面填入查询数据库数据的SQL语句(填写的SQL语句末尾不要加“;”)
  • parameter valus:数据的参数值
  • parameter types:数据的参数类型
  • cariable names:保存SQL语句返回结果的变量名
  • result cariable name:创建一个对象变量,保存所有返回结果
  • query timeout:查询超时时间
  • handle result set:定义如何处理由callable statements语句返回的结果

如下图所示:Jmeter(六) - 从入门到精通 - 建立数据库测试计划(详解教程),jmeter,数据库,软件测试,程序人生,自动化测试,python,功能测试

其中Query Type(SQL语句类型)包含十个类型,每个类型作用都不同,下面分别介绍。

1、Select statement

这是一个查询语句类型;如果JDBC Request中的Query内容为一条查询语句,则选择这种类型。

PS:多个查询语句(不使用参数的情况下)可以放在一起顺序执行,需要设置Query Type为:Callable Statement;

    如果Query Type为:select Statement,则只执行第一条select语句。

2、Update statement

这是一个更新语句类型(包含insert和update);如果JDBC Request中的Query内容为一条更新语句,则选择这种类型。

PS:如果该类型下写入多条update语句,依然只执行第一条(原因同上,具体下面介绍)。

3、Callable statement

这是一个可调用语句类型,CallableStatement 为所有的 DBMS 提供了一种以标准形式调用已储存过程的方法。

已储存过程储存在数据库中,对已储存过程的调用是 CallableStatement 对象所含的内容。

这种调用是用一种换码语法来写的,有两种形式:一种形式带结果参数,另一种形式不带结果参数;结果参数是一种输出 (OUT) 参数,是已储存过程的返回值。

两种形式都可带有数量可变的输入(IN 参数)、输出(OUT 参数)或输入和输出(INOUT 参数)的参数,问号将用作参数的占位符。 

在 JDBC 中调用已储存过程的语法如下所示。注意,方括号表示其间的内容是可选项;方括号本身并不是语法的组成部份。 

{call 过程名[(?, ?, ...)]},返回结果参数的过程的语法为: {? = call 过程名[(?, ?, ...)]};

不带参数的已储存过程的语法类似:{call 过程名}。

4、Prepared select statement

statement用于为一条SQL语句生成执行计划(这也是为什么select statement只会执行第一条select语句的原因),如果只执行一次SQL语句,statement是最好的类型;

Prepared statement用于绑定变量重用执行计划,对于多次执行的SQL语句,Prepared statement无疑是最好的类型(生成执行计划极为消耗资源,两种实现速度差距可能成百上千倍);

PS:PreparedStatement的第一次执行消耗是很高的. 它的性能体现在后面的重复执行。

5、Prepared update statement

Prepared update statement和Prepared select statement的用法是极为相似的,具体可以参照第四种类型。

6、Commit

commit的意思是:将未存储的SQL语句结果写入数据库表;而在jmeter的JDBC请求中,同样可以根据具体使用情况,选择这种Query类型。

7、Rollback

rollback指的是:撤销指定SQL语句的过程;在jmeter的JDBC请求中,同样可以根据需要使用这种类型。

8、AutoCommit(false)

MySQL默认操作模式就是autocommit自动提交模式。表示除非显式地开始一个事务,否则每条SQL语句都被当做一个单独的事务自动执行;

我们可以通过设置autocommit的值改变是否是自动提交autocommit模式;

而AutoCommit(false)的意思是AutoCommit(假),即将用户操作一直处于某个事务中,直到执行一条commit提交或rollback语句才会结束当前事务重新开始一个新的事务。

9、AutoCommit(true)

这个选项的作用和上面一项作用相反,即:无论何种情况,都自动提交将结果写入,结束当前事务开始下一个事务。

10、编辑(${})

jmeter中的JDBC请求中的SQL语句是无法使用参数的,比如: SELECT * FROM ${table_name} 是无效的。

如果需实现同时多个不同用户使用不同的SQL,可以通过把整条SQL语句参数化来实现;(把SQL语句放在csv文件中,然后在JDBC Request的Query 中使用参数代替 ${SQL_Statement})。

备注:后面的七项项涉及到数据库的事务控制等知识点,如果有不明白的地方请自行查询相关知识。

2.5添加侦听器以查看/存储测试结果

您需要添加到测试计划中的最后一个元件是 Listener。该元素负责将JDBC请求的所有结果存储在文件中并显示结果。

具体步骤:选择ThreadGroup元件并添加一个结果树的侦听器(添加  →  侦听器  →  结果树)。

侦听器显示结果及控制面板。如下图所示:Jmeter(六) - 从入门到精通 - 建立数据库测试计划(详解教程),jmeter,数据库,软件测试,程序人生,自动化测试,python,功能测试

2.6保存测试

在菜单点击“保存”按钮图标,选择保存位置,点击“Save”保存测试计划,如下图所示:Jmeter(六) - 从入门到精通 - 建立数据库测试计划(详解教程),jmeter,数据库,软件测试,程序人生,自动化测试,python,功能测试

2.7运行测试

保存测试计划以后,在菜单运行  →  开始或 Ctrl  +  R运行测试,如下图所示:Jmeter(六) - 从入门到精通 - 建立数据库测试计划(详解教程),jmeter,数据库,软件测试,程序人生,自动化测试,python,功能测试

3.小结

 好了今天的创建数据库测试计划就分享到这里,下一篇带着小伙伴和童鞋们实战一下,小试一下牛刀。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:【文末领取】


             【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】


一、Python编程入门到精通

二、接口自动化项目实战 

Jmeter(六) - 从入门到精通 - 建立数据库测试计划(详解教程),jmeter,数据库,软件测试,程序人生,自动化测试,python,功能测试

三、Web自动化项目实战

四、App自动化项目实战 

Jmeter(六) - 从入门到精通 - 建立数据库测试计划(详解教程),jmeter,数据库,软件测试,程序人生,自动化测试,python,功能测试

五、一线大厂简历

六、测试开发DevOps体系 

Jmeter(六) - 从入门到精通 - 建立数据库测试计划(详解教程),jmeter,数据库,软件测试,程序人生,自动化测试,python,功能测试

七、常用自动化测试工具

八、JMeter性能测试 

Jmeter(六) - 从入门到精通 - 建立数据库测试计划(详解教程),jmeter,数据库,软件测试,程序人生,自动化测试,python,功能测试

九、总结(文末尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!

Jmeter(六) - 从入门到精通 - 建立数据库测试计划(详解教程),jmeter,数据库,软件测试,程序人生,自动化测试,python,功能测试 文章来源地址https://www.toymoban.com/news/detail-637668.html

到了这里,关于Jmeter(六) - 从入门到精通 - 建立数据库测试计划(详解教程)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 使用JMeter创建数据库测试

    使用JMeter创建数据库测试

    好吧!我一直觉得我不聪明,所以,我用最详细,最明了的方式来书写这个文章。我相信,我能明白的,你们一定能明白。 我的环境:MySQL:mysql-essential-5.1.51-win32 jdbc驱动:我已经上传到csdn上一个:http://download.csdn.net/source/3451945 JMeter:jmeter-2.4  任意版本都行。 1.首先我们要

    2024年02月12日
    浏览(6)
  • mariadb数据库从入门到精通

    mariadb数据库从入门到精通

    实验环境:yum仓库搭建好 mariadb 是当前流行的Mysql数据库的分支 Mysql原先SUN公司(java)被Orical收购了 Mysql开源免费,所以企业当中的核心数据库是Orical,其余是Mysql mariadb是Mysql数据库的一个分支 1.数据库的安装 由于数据库的登陆不需要密码所以不安全,我们要安全初始化。 密码

    2024年01月21日
    浏览(12)
  • 【100天精通python】Day30:使用python操作数据库_数据库基础入门

    【100天精通python】Day30:使用python操作数据库_数据库基础入门

     专栏导读  专栏订阅地址: https://blog.csdn.net/qq_35831906/category_12375510.html 1.1 什么是数据库?         数据库是一个结构化存储和组织数据的集合,它可以被有效地访问、管理和更新。数据库的目的是为了提供一种可靠的方式来存储和管理大量的数据,以便用户和应用程序

    2024年02月13日
    浏览(13)
  • JAVA JDBC数据库开发详解:从入门到精通

    简介: Java是一种面向对象,安全灵活的编程语言,已经成为了世界上最流行的编程语言之一。Java语言的一个重要应用领域就是数据库开发。通过Java JDBC(Java Database Connectivity) API,开发人员可以使用Java语言来访问并操作各种数据库。 本篇资料将会详细介绍Java JDBC数据库

    2024年02月02日
    浏览(6)
  • 13. python从入门到精通——Python操作数据库

    13. python从入门到精通——Python操作数据库

    python database API 规范对于关系数据库的访问,Python社区已经制定出一个标准,称为Python Database API,通过这个接口使python跨不同数据库的操作代码可以更加具有可移植性、让 Python 可以连接(并操作)更多的数据库。 用于管理数据库连接的Connection(连接)对象 用于执行查询的

    2024年02月10日
    浏览(66)
  • 性能测试jmeter连接数据库jdbc(sql server举例)

    性能测试jmeter连接数据库jdbc(sql server举例)

    一、下载第三方工具包驱动数据库 1. 因为JMeter本身没有提供链接数据库的功能,所以我们需要借助第三方的工具包来实现。  (有这个jar包之后,jmeter可以发起jdbc请求,没有这个jar包,也有jdbc取样器,但不能发起请求。) 2. 进入maven仓库-http://mvnrepository.com/,找到想要的工

    2024年02月09日
    浏览(8)
  • MongoDB数据库从入门到精通系列文章之:MongoDB数据库百篇技术文章汇总

    MongoDB数据库系列文章持续更新中: 更多数据库内容请阅读博主数据库专栏,数据库专栏涵盖了Mysql、SQLServer、PostgreSQL、MongoDB、Oracle、Cassandra等数据库 数据库专栏 文章名称 文章链接 数据库安装部署系列之:部署Mongodb5.0.6高可用集群详细步骤 数据库安装部署系列之:部署M

    2024年02月11日
    浏览(19)
  • Oracle数据库从入门到精通系列之十八:Oracle进程

    Oracle中的每个进程都要执行一个特定的任务(或一组任务),每个进程都会为自己分配内存(PGA)来完成它的任务。 一个Oracle实例主要有以下3类进程: 服务器进程(server process)。 后台进程(background process)。 从属进程(slave process)。 这些进程根据客户端的请求来完成工作。 专用服务

    2024年02月09日
    浏览(20)
  • ASP.NET Core MVC 从入门到精通之数据库

    ASP.NET Core MVC 从入门到精通之数据库

    随着技术的发展,ASP.NET Core MVC也推出了好长时间,经过不断的版本更新迭代,已经越来越完善,本系列文章主要讲解ASP.NET Core MVC开发B/S系统过程中所涉及到的相关内容,适用于初学者,在校毕业生,或其他想从事ASP.NET Core MVC 系统开发的人员。 经过前几篇文章的讲解,初步

    2023年04月27日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包