JMeter是一款常用的编程测试软件,可以通过创建脚本来帮助回归测试,验证是否符合预期的结果,能够为开端带来一个良好的保障,协助开发人员在极力负荷的成都下测试他们的项目,保证大局观的同时,考虑到局部的调整。
1、完整的多线程框架允许多个线程同时采样,并允许不同的线程组同时采样不同的函数。
2、仔细的图形用户界面设计允许更快的操作和更精确的计时。
3、测试结果的缓存和脱机分析/重放。
4、可插拔采样器允许无限的测试能力。
5、可以使用可插拔计时器选择多个负载统计信息。
6、数据分析和可视化插件允许很大的扩展性和个性化。
7、函数可用于为测试提供动态输入或提供数据操作。
它是免费的。开放源码软件。
它具有简单,直观的图形用户界面。
JMeter中负载和性能测试许多不同的服务器类型:网站 - HTTP,HTTPS,SOAP,数据库通过JDBC,LDAP,JMS,邮件 - POP3
它是独立于平台的工具。在Linux / UNIX,JMeter中JMeter中shell脚本点击可以调用。在Windows上,它可以调用启动jmeter.bat文件。
它具有完整的Swing和轻量级组件支持(预编译的JAR使用包javax.swing中*)。
JMeter 测试计划存储为XML格式。这意味着可以使用文本编辑器生成一个测试计划。
它的完整的多线程框架,允许并发多线程和同步采样不同的功能由单独的线程组采样。
它是高度可扩展的。
也可用于执行应用程序的自动化测试和功能测试。
首先打开jmeter软件,发现显示的为英文
首先可以通过jmeter的界面工具来设置语言为中文
点击菜单栏【Options】按钮
然后依次单击【Choose language】>【Chinese(simplified)】
设置完成查看效果
也可以通过设置jmeter.properties配置文件来设置语言为中文
打开jmeter.properties配置文件,修改language=zh_CN
1、Label:每个JMeter的element的Name值。例如HTTP Request的Name。
2、Samples:发出请求数量。如果线程组中配置的是,线程数为200,循环次数为50,则总的数量为100000.
3、Average:平均响应时间(单位:ms)。默认是单个Request的平均响应时间,当使用了Transaction Controller时,也可以以Transaction为单位显示平均响应时间。
4、Median:中位数,也就是 50% 用户的响应时间。
5、Median:中位数,也就是 50% 用户的响应时间
6、90% Line:因为在评估一次测试的结果时,仅仅有平均事物响应时间是不够的。假如有一次测试,总共有10个请求被响应,其中最小响应时间为0.02秒,最大响应时间为110秒,平均事务响应时间为4.7秒。这样平均时间就毫无意义了。
7、Min:最小响应时间
8、Max:最大响应时间
9、Error%:本次测试中出现错误的请求的数量/请求的总数
10、Throughput:吞吐量。默认情况下标示每秒完成的请求数
11、KB/sec:每秒从服务器端接收到的数据量。
准备好驱动包后,需要把jdbc驱动jar包引入测试计划。
点击测试计划-->点击浏览-->选中mysql驱动jar包-->打开,如下图所示:
这样驱动就引入进来了。接下来新建一个线程组,如下图所示:
线程组下新建一个JDBC Connection Configuration配置元件,详细配置如下图所示:
到此基本配置结束,可以开始添加jdbc请求测试数据库啦。新建一个JDBC请求,如下图所示:
至此一个最简单的jmeter连接mysql数据库的脚本就基本准备好了,接下来添加一个监听器:查看结果树 ,然后运行脚本即可,结果如下图所示:
当然,实际应用中,很多时候我们用jmeter测试数据库时,需要用到参数化,比如,向数据库插入一些数据,但是插入的数据都有唯一性,这时需要我们insert 语句参数化,jmeter JDBC请求参数化跟其他请求的参数化没啥不同:(jmeter的几种参数化方法在此不做叙述),这里举个简单参数化的例子,其他方式的参数化也一样。
jmeter使用内置函数参数化:__Random(1,100,) 意思是生成一个1-100的随机数,如下图所示:
接下来在sql里引用即可,如下图所示:
上图有两个地方需要参数化,这时候就可以把函数助手生成的复制下来,替换即可:${__Random(1,100,)},如下图所示:
这时候执行 20次看看效果,把线程数设为20,运行如下图所示:
结果如下图所示:
可以在数据库里查看一下结果,如下图所示: