在本文中,我们将看到如何使用Jmeter插件进行客户端性能测试。
我将使用jmeter webdriver插件。 在开始本主题之前,请从我以前的文章中获得有关客户端性能测试的一些基本信息。 因此,让我们开始吧:
安装
- 通过这篇文章之后的链接,从下面的链接安装Jmeter和插件。
- 捷米特
- 插件 (您只能选择Web驱动程序,但我更喜欢所有这些插件 )
- 从这里下载Selenium Server 。 (您需要使用Java来运行它)
- 从存档中下载Firefox 26。 为什么是26? 因为jmeter webdriver插件支持firefox26。在这里,您可以看到支持详细信息的链接 。
注意:如果您有更新的Firefox版本,这可能会很棘手。 在这种情况下,您可以像我一样。
- 禁用Firefox更新检查
- 在单独目录名称的新文件夹中安装。
- 首次运行此程序时,只需取消初始更新过程即可。 当您禁用了Firefox更新(在更新的Firefox中)时,请确保您也看到了此Firefox 26中禁用的更新设置。
注意:这部分有点棘手,我提供了单独的文章来解决它。
对于Jmeter远程执行或本地,最好只有一个Firefox(版本26)没有自动更新设置,这样可以最大程度地降低测试执行的复杂性。
- 将firefox 26,硒服务器保留在路径变量中。 要进行检查,请从命令行键入firefox并运行。 您应该看到,firefox 26在桌面启动。
- 设置Jmeter:通常,对于Webdriver采样器,我们不需要任何其他东西。 但是,由于需要调试,因此可以在user.properties文件中使用以下属性。
它启用了子采样,非常适合调试。
webdriver.sampleresult_class=true
让我解释一下它是如何工作的: JMeter webdriver sampler只是http sampler的扩展,而不是使用脚本编辑器的替代。 当运行时,它实际上会调用由webdriver驱动的firefox。 这意味着,它主要将指令发送给webdriver,而webdriver会做所有事情。 现在,您可能想知道代码如何传递到Web驱动程序。 像其他代码支持一样,WebDriver核心按照JSR规范作为外部代码运行。 它实际上是JavaScript执行。 而且,您会看到,就像使用jmeter进行了一些基本修改的Webdriver Java代码一样。 我将提供单独的博客或编码。
在将步骤写为webdriver脚本后,使用侦听器获取时间。 与其他采样器一样,您可以使用侦听器进行明智的调试。
浏览器支持
只需点击此链接 ,其中提到了webdriver sampler支持的可配置浏览器名称。 您也可以从jmeter中看到这一点:
时间测量
Webdriver采样器根据以下代码行计算时间:
WDS.sampleResult.sampleStart()
这行代码:
WDS.sampleResult.sampleEnd()
因此,为了进行调试,我们需要将子样本显示为主样本的子样本。 为此,我们需要激活
sampleresult_class (设置为true)。 激活后,我们可以像
WDS.sampleResult.sampleStart()
//Brows to a URL
//Add user name and password
WDS.sampleResult.subSampleStart('Log In request')
//Click Log in
WDS.sampleResult.subSampleEnd(true)
//Check title
//do some another process
WDS.sampleResult.sampleEnd()
在视图结果树侦听器中,您可以看到包含子样本名称“ Log In request”的主样本。 一个主样本可以有多个子样本。 这意味着,我们可以与结果树分开计算每次时间。
请注意,子样本不会以表格格式的侦听器或图形单独显示。
而且,如果我们需要衡量特定的交易,我们可以在多个webdriver样本中拆分单个测试。 例如,用于登录的采样器,用于在首页执行某些工作的采样器,用于消息传递的采样器等。通过这种方式,我们可以在报告中看到结果。 通常,每个业务交易都是在单独的样本中进行度量的,其中详细步骤将被子抽样。
编写第一个脚本:
要编写WebDriver采样器脚本,您需要在任何浏览器(驱动程序)配置中添加WebDriver采样器(sampler –> WebDriver采样器)。 请参阅浏览器支持部分中的图像以获取驱动程序配置元素。
我将提供一个单独的帖子,介绍有关如何编写Webdriver测试脚本的示例。 您可以在wedriver sampler Wiki上看到一些不错的指南。
测试计划:
从我以前的客户端性能测试文章中可以知道,该测试应从单个用户或线程运行。 当jmeter采样器使用Webdriver填充浏览器时,这具有特定的硬件要求。 也就是说,它将占用处理器的单个线程。 这意味着, 如果要运行Webdriver采样器,则至少需要2个核心CPU 。 为什么是2核心? 另一个是Jmeter。 因此,如果您有8个核心CPU,则只能为Webdriver采样器运行7个线程。 因此,对于测试,我们必须为webdriver sampler添加单独的线程组或测试块。
我们将在以下时间运行以衡量客户端执行时间:
- 用户负载不大时
- 当服务器上的平均负载
- 高负荷时(视为峰值负荷)
有时,也可以测试以下内容:
- 超出容量时,可能会发生错误,也可能在错误发生之后。
- 作为连续性能测试。 通常,人们每天或每周使用jmeter进行选定的回归测试。
同样,该公式很简单, 用于单个客户端性能测试的1个CPU线程。
而且,您只需像Jmeter测试一样运行测试即可。
翻译自: https://www.javacodegeeks.com/2015/01/how-to-perform-client-side-web-performance-testing-in-jmeter.html