上海SEO网站优化推广公司,在哪里查商标注册信息,wordpress 主题 样式,上海美术设计公司1.简介 在实际工作中#xff0c;我们经常会听到数据库的性能和稳定性等等#xff0c;这些有时候也需要测试工程师去评估和测试#xff0c;因此这篇文章主要介绍了jmeter连接和创建数据库测试计划的过程,在文中通过示例和代码非常详细地介绍给大家#xff0c;希望对各位小伙…1.简介 在实际工作中我们经常会听到数据库的性能和稳定性等等这些有时候也需要测试工程师去评估和测试因此这篇文章主要介绍了jmeter连接和创建数据库测试计划的过程,在文中通过示例和代码非常详细地介绍给大家希望对各位小伙伴和童鞋们的学习或者工作具有一定的指导和参考学习价值,遇到类似的问题脑子一片空白的童鞋们可以参考一下。
2.建立数据库测试计划 在本节中您将学习如何创建基本的测试计划以测试数据库服务器和操作数据库增、删、改、查。本示例使用MySQL数据库驱动程序。要使用该驱动程序必须将其包含的.jar文件例如mysql-connector-java-XXX-bin.jar复制到JMeter ./lib目录。
2.1新建测试计划
首先启动JMeter我们新建一个测试计划如下图所示 2.2添加用户
新建完测试计划以后我们前边也讲过了这时候就要添加用户了。你要对每个JMeter测试计划进行的第一步是添加一个线程组用户。线程组告诉JMeter您要模拟的用户数量用户应多久发送一次请求以及应发送多少次请求。
添加用户的步骤首先选择“测试计划”来添加ThreadGroup元件单击鼠标右键以获得“ 添加”菜单然后选择“ 添加” →“ ThreadGroup”。
添加完用户以后你应该在“测试计划”下可以看到“线程组”元素。如果没有看到该元素则通过单击“测试计划”元素前边的“ ”来展开 “测试计划”树就可以看到你添加的用户了。
最后你需要修改默认属性如果需要修改不需要修改默认即可。如果尚未选择线程组元素则在树中选择它。那么你就可以在“ JMeter”窗口的右侧部分中看到“线程组控制面板”如下图所示 2.3添加JDBC连接配置
通过上边的操作我们已经定义了用户然后我们必须定义这些用户所要去的目的地和目的地建立联系。不要这些用户累死累活的干了半天的活知不道是为谁干得活。在本部分中你需要和目的地建立联系。
具体步骤首先选择ThreadGroup元件。单击鼠标右键获得“ 添加”菜单然后选择“ 添加” →“ 配置元素” →“ JDBC连接配置”。然后选择此新元件以查看其控制面板。我们需要设置一些字段这些字段相当于谍战片中的接头暗号例如《智取威虎山》杨子荣与坐山雕的接头暗号脸红什么精神焕发。怎么又黄拉度防冷涂的蜡长江长江我是黄河等等。暗号对上了才可以建立联系。否则认为有危险不是建立联系具体在测试中的表现就是报错了
设置以下字段这些假设我们将使用名为“hongge ” 的MySQL数据库
Variable Name绑定到池的变量名称该名称自定义在JDBC Request会用到这需要唯一地标识配置。JDBC Sampler使用它来标识要使用的配置。Database URL数据库URLjdbc:mysql:// 数据库IP地址:数据库端口/数据库名称例如宏哥本地搭建MySQLjdbc:mysql://localhost:3306 / honggeJDBC Driver ClassJDBC驱动程序类com.mysql.jdbc.DriverUsername用户名数据库连接的用户名Password密码数据库连接的密码
注意敲脑壳敲黑板啦
JMeter使用“控制面板”中指定的配置设置创建数据库连接池。在“ 变量名 ”字段的JDBC请求中引用该池。可以使用几种不同的JDBC Configuration元素但是它们必须具有唯一的名称。每个JDBC请求必须引用一个JDBC配置池。一个以上的JDBC请求可以引用同一个池。
连接配置的控制面板的其他字段可以保留为默认值。如下图所示 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语句返回的结果
如下图所示 其中Query TypeSQL语句类型包含十个类型每个类型作用都不同下面分别介绍。
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无疑是最好的类型生成执行计划极为消耗资源两种实现速度差距可能成百上千倍
PSPreparedStatement的第一次执行消耗是很高的. 它的性能体现在后面的重复执行。
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元件并添加一个结果树的侦听器添加 → 侦听器 → 结果树。
侦听器显示结果及控制面板。如下图所示 2.6保存测试
在菜单点击“保存”按钮图标选择保存位置点击“Save”保存测试计划如下图所示 2.7运行测试
保存测试计划以后在菜单运行 → 开始或 Ctrl R运行测试如下图所示 3.小结 好了今天的创建数据库测试计划就分享到这里下一篇带着小伙伴和童鞋们实战一下小试一下牛刀。
最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走【文末领取】 【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】 一、Python编程入门到精通
二、接口自动化项目实战 三、Web自动化项目实战
四、App自动化项目实战 五、一线大厂简历
六、测试开发DevOps体系 七、常用自动化测试工具
八、JMeter性能测试 九、总结文末尾部小惊喜
生命不息奋斗不止。每一份努力都不会被辜负只要坚持不懈终究会有回报。珍惜时间追求梦想。不忘初心砥砺前行。你的未来由你掌握
生命短暂时间宝贵我们无法预知未来会发生什么但我们可以掌握当下。珍惜每一天努力奋斗让自己变得更加强大和优秀。坚定信念执着追求成功终将属于你
只有不断地挑战自己才能不断地超越自己。坚持追求梦想勇敢前行你就会发现奋斗的过程是如此美好而值得。相信自己你一定可以做到