万字长文,带你学会JMeter的使用!!!赶紧收藏(下)

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 万字长文,带你学会JMeter的使用!!!赶紧收藏

11.数据库测试计划教程

现在,我们将了解如何配置,运行和分析针对MySQL数据库的测试结果。这个示例是关于MySQL的,但是可以使用任何其他类型的数据库(如Oracle,MongoDB或其他数据库)来完成。

  • 安装MySQL

如果您的计算机中未安装MySQL,则可以从http://dev.mysql.com/downloads/下载并安装MySQL服务器,这非常容易。

  • 下载MySQL驱动程序

下载mysql connector(mysql-connector-java-5.1.6)并将其复制到jmeter的lib目录中C:\jmeter\apache-jmeter-2.11\lib

  • 启动MySQL

启动数据库服务器,以便您可以对其进行查询。

  • 建立资料库

您可以根据需要创建数据库,这只是一个非常简单的数据库的示例:

create database jmeter;``use jmeter;``create table jmeter_stuff(``id` `int, name varchar(50), description varchar(50));``insert into jmeter_stuff(``id``, name, description)VALUES(1, ``"dani"``, ``"the boss"``);``insert into jmeter_stuff(``id``, name, description)VALUES(2, ``"topo"``, ``"the worker"``);``insert into jmeter_stuff(``id``, name, description)VALUES(3, ``"tupac"``, ``"the other"``);
  • 创建测试计划

执行与上一章相同的操作,以使用新的线程组,JDBC配置类型的新配置元素和JDBC类型的新请求(采样器)创建测试计划,还添加一个侦听器以解析和查看结果与前面示例中的结果相同。唯一的区别是采样器的类型,在本例中为JDBC采样器。

  • JDBC采样器

给变量绑定池赋予一个有意义的名称,并编写一些SQL语句:

select` `* from jmeter_stuff;

image.png

  • JDBC连接配置

将新的JDBC连接配置添加到采样器。

右键单击JDBC采样器->添加连接配置

如下更改参数:

Variable Bound to Pool= same name as ``in` `the sampler``Database URl=jdbc:mysql:``//localhost``:3306``/jmeter``JDBC Driver class=com.mysql.jdbc.Driver``username=``password=``set` `username and password to your MySql credentials.

image.png

  • 保存计划并执行。
  • 使用之前配置的侦听器查看结果。

您可以按照与HTTP请求测试计划相同的方式来验证和检查输出,还可以添加预处理器,后处理器,断言或您可能需要的任何其他类型的元素。

image.png

在这种情况下,输出是select语句的结果。

您也可以通过在采样器配置中更改SQL语句来使用这种采样器来更新数据。

以下屏幕截图是有关请求响应结果的基本信息:

image.png在本章中,我们将解释如何将JMeter与JUnit结合使用。从负载和性能的角度来看,这提供了非常强大的机制来执行功能测试。

  • 首先,您需要创建一个Junit测试,如下所示:
public` `class` `JMeterTest``{`` ``public` `JMeterTest()`` ``{``   ``// just for testing purposes``   ``System.out.println( ``"calling the constructor"` `);`` ``}`` ``@Before`` ``public` `void` `setUp() ``throws` `Exception`` ``{``   ``// just for testing purposes``   ``System.out.println( ``"calling setup"` `);`` ``}`` ``@After`` ``public` `void` `tearDown() ``throws` `Exception`` ``{``   ``// just for testing purposes``   ``System.out.println( ``"calling tearDown"` `);`` ``}`` ``@Test`` ``public` `void` `testMe()`` ``{``   ``for``( ``int` `i = ``0``; i < ``30``; i++ )``   ``{``     ``// just asserting randomly in order to check what happens in each case``     ``int` `randomNumber = (``int``)( Math.random() * ``100` `);``     ``System.out.println( randomNumber );``     ``assertEquals( ``0``, randomNumber % ``2` `);``   ``}`` ``}``}

该测试主要包含几个断言,以检查JMeter如何使用它们,而本教程的目的不是详细解释单元测试或JUnit。

  • 将测试添加到JUnit目录

将单元测试打包到jar文件中,然后将其复制到目录中jmeter/lib/junit。确保jar文件包含.class字节码以及要JMeter执行的测试。在本文的最后,您可以找到一个带有pom.xml的Java项目,您可以将其直接用于生成JMeter可以使用的jar文件。您只需要编译代码:

mvn compile

或者,您可以直接在Eclipse或您喜欢的IDE中将项目导出为JAR文件,包括字节码和生成的文件。

  • 添加一个JUnit采样器请求
    image.png像我们之前看到的那样创建一个测试计划,并添加一个JUnit请求类型的采样器:Add Sampler-> Junit Request并对其进行配置,以便执行您刚刚在上面创建的测试中想要的方法。

在我们的例子中,我们将执行基于JUnit 4的方法,但是您也可以使用JUnit 3通过为此选择复选框来执行此操作。

image.png

  • 像上一章一样添加一个侦听器以查看结果
  • 运行测试计划
  • 查看结果

在这里,我们可以看到刚刚创建的JUnit测试的结果:

image.png正如我们在上面的屏幕截图中看到的,我们所有的测试(1个测试,10个循环)都失败了。这是预期的行为,因为我们希望测试失败。实际上,我们刚刚编写的单元测试没有功能意义,并且没有用。它的目的只是演示如何配置JMeter以使用此类单元测试。

本章介绍的内容可能对使用JMeter来测试应用程序的功能和业务逻辑非常有用,并且具有该应用程序提供的所有好处,这也非常有趣,因为它可以将Java语言的所有优点与Java的多语言功能相结合。JMeter。

13.记录HTTP测试

现在我们将解释如何配置JMeter来记录HTTP请求。为此,我们需要在计算机上安装Firefox,我使用的是32版。

  • 获取Firefox以使用JMeter代理

转到Firefox网络设置,然后选择手动代理选项,并将其设置为服务器localhost和端口8080(实际上这会加深您的JMeter配置)。之后,检查选项“将此代理服务器用于所有协议”。

image.png

  • 首先,我们像以前一样创建测试计划。

我们添加一个新的线程组,并为其命名。我们将线程组配置为具有50个线程,启动周期和循环数等于1时为10秒。

image.png

  • 添加HTTP请求默认值。

在我们刚创建的线程组上,添加一个新的Config元素,然后选择“ HTTP Request Defaults”。

image.png

您应在此处输入要测试的服务器名称。

  • 添加录音控制器

现在,我们向工作台添加了一个记录控制器。

选择工作台,而不是测试计划,并添加“测试脚本记录器”类型的“非测试元素”。

image.png现在,您应该独立于测试计划来独立存储工作台。保存测试计划不会保存工作台。

如下配置记录器:

image.png

  • 添加计时器

如果您希望可以在记录器中添加一个计时器(常数),则记录的每个HTTP请求都将使用此计时器。

  • 开始录音

通过单击记录器的启动按钮,您将启动JMeter代理服务器。

image.png

  • 记录应出现

如果您访问网页以发出示例HTTP请求,例如使用Firefox访问http://www.oviedin.com(按照本章第一步的说明进行配置后),您将看到不同的内容。条目将显示在测试计划中的“记录控制器”下。

image.png

这些记录实际上是在查询前面提到的网页时完成的HTTP请求。仅存储在“记录的测试脚本”中配置的过滤器中包含的记录。它们可以在您的测试计划中重新配置和使用。

14. JMeter插件

高级用户和用例可以使用不同的插件,其中有些需要额外的安装,而有些则不需要。

有很多非常有用的插件,它们允许使用高级选项来解析结果,并使用诸如http://jmeter-plugins.org/wiki/GraphsGeneratorListener/图表来分析结果。

为了使JMeter与您的持续集成工具连接并直接从CI软件(如Jenkins的“ https://wiki.jenkins-ci.org/display/JENKINS/Performance+Plugin ”)中运行JMeter测试计划,还提供了可用的插件。

正如我所说的那样,插件的数量在增加,不可能一一列举,在尝试自己实现一个插件之前,最好先检查一下互联网上是否有可用的插件。

您也可以为JMeter创建自己的插件,但这超出了本文的范围。

15. JMeter最佳做法

在本文结束之前,我们将写下一些非常有用的技巧和最佳实践:

  • 尽管JMeter UI是用于配置和创建不同测试计划的非常有用且直观的工具,但是经验丰富的用户还是希望使用非GUI模式来执行它们并存储其结果。

您可以通过键入以下内容来执行此操作:

jmeter -n -t test.jmx -l test.jtl.

假设测试是您要执行的测试。您必须提供存储测试的完整路径。

  • 侦听器可以很好地解析结果,但是它们也会占用大量资源,并且会占用大量内存,因此最好在配置中使用尽可能少的侦听器。标志-l全部删除它们,建议在不需要侦听器时使用。
  • 在结果树视图中选中“仅查看错误”标志,可能您只对检查测试期间发生的错误感兴趣。
  • 在同一采样器中使用变量和循环,而不是配置仅由它们使用的变量和参数来区分的多个相似样本。
  • 创建Junit测试计划时,建议提供有意义的错误和断言消息,以使JMeter输出尽可能地易于理解,这是在这种情况下完全适用的单元测试的一般建议。
  • 使用Stop (Control + '.')。如果可能,这将立即停止线程。
  • 使用关机(Control + ',')。这要求线程在任何当前工作结束时停止。其他工具提示可从https://wiki.apache.org/jmeter/JMeterShortcuts获得。

16.总结

这就是全部。我们看到了如何安装JMeter以及如何配置它以执行各种类型的测试,例如HTTP请求,针对数据库的测试以及针对Junit的功能测试。JMeter提供了许多其他类型的测试和功能,但本教程未涵盖。本教程的目的是对应用程序进行完整描述,并说明如何配置您的第一个测试计划。我们还解释了JMeter UI的主要部分以及如何使用它,以及JMeter随附的测试计划元素。在上一章中,我们提到了使用不同的插件扩展JMeter的可能性。对于有高级需求的经验用户来说,这是非常有趣的一点。

17.资源


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
前端开发 JavaScript Java
万字长文,带你学会JMeter的使用!!!赶紧收藏(中)
万字长文,带你学会JMeter的使用!!!赶紧收藏
157 0
万字长文,带你学会JMeter的使用!!!赶紧收藏(中)
|
XML 网络协议 Oracle
万字长文,带你学会JMeter的使用!!!赶紧收藏(上)
万字长文,带你学会JMeter的使用!!!赶紧收藏
229 0
万字长文,带你学会JMeter的使用!!!赶紧收藏(上)
|
8月前
|
Java 测试技术 Apache
用JMeter做接口压力测试
JMeter是Apache组织开发的基于Java的压力测试工具,它是用 Java 语言编写的
79 0
|
8月前
|
测试技术
JMeter压力测试简单例子
JMeter压力测试简单例子
83 0
|
10月前
|
XML 前端开发 测试技术
使用 jMeter 对 SAP Spartacus 进行并发性能测试
使用 jMeter 对 SAP Spartacus 进行并发性能测试
|
20天前
|
XML JSON 测试技术
JMeter 响应断言详解:提升测试精度的利器
**摘要:** Apache JMeter的响应断言用于验证性能和功能测试中的系统响应。常见的断言类型包括文本、JSON、XPath、XML、响应代码和时间断言。配置断言涉及添加采样器、选择断言类型及设定相关参数。最佳实践建议选择合适断言类型、减少断言数量、使用正则表达式,并结合前置和后置处理器。实例演示了如何配置文本、JSON和响应代码断言来验证登录接口的成功响应。响应断言确保了测试的准确性与效率。
15 0
|
25天前
|
监控 数据可视化 Java
掌握 JMeter 插件管理器:提升性能测试的利器
Apache JMeter 是一款强大的性能测试工具,其灵活性和扩展性使其在性能测试领域广受欢迎。JMeter 插件管理器(JMeter Plugins Manager)为用户提供了一个方便的平台来安装、更新和管理各种插件,从而大大扩展了 JMeter 的功能。
25 0
|
25天前
|
缓存 Linux API
深入解析 JMeter TPS 测试:从理论到实践
本文档介绍了如何使用Apache JMeter进行TPS测试。TPS(Transactions Per Second)是衡量系统性能的关键指标,表示每秒处理的事务数。在JMeter中,创建测试计划包括配置线程组、HTTP请求、定时器和监听器。运行测试后,通过聚合报告分析吞吐量、平均响应时间和错误率来计算TPS。当TPS不足时,可优化服务器资源、应用程序代码、数据库查询或引入缓存来提升性能。掌握TPS测试有助于系统性能优化。
24 0
|
25天前
|
存储 测试技术 Apache
高效管理JMeter中的Cookies:测试工程师的全面指南
Apache JMeter的Cookie管理器是性能测试中的关键工具,用于模拟用户会话和保持状态。本文档详细介绍了如何配置和使用Cookie管理器:添加HTTP Cookie Manager到测试计划,配置清除每次迭代Cookies的选项,以及设置登录和验证请求。此外,还讨论了验证、调试、进阶配置,如Cookie政策、跨域Cookies和正则表达式提取Cookie。通过掌握这些步骤,可以提升测试的准确性和效率。
33 0
|
2月前
|
JSON 网络协议 Java
使用Jmeter进行功能和性能测试
使用Jmeter进行功能和性能测试