如何在JMeter中执行客户端Web性能测试?

在本文中,我们将看到如何使用Jmeter插件进行客户端性能测试。

我将使用jmeter webdriver插件。 在开始本主题之前,请从我以前的文章中获得有关客户端性能测试的一些基本信息。 因此,让我们开始吧:



安装

  1. 通过这篇文章之后的链接,从下面的链接安装Jmeter和插件
    • 捷米特
    • 插件 (您只能选择Web驱动程序,但我更喜欢所有这些插件
  2. 从这里下载Selenium Server 。 (您需要使用Java来运行它)
  3. 存档中下载Firefox 26。 为什么是26? 因为jmeter webdriver插件支持firefox26。在这里,您可以看到支持详细信息的链接

    注意:如果您有更新的Firefox版本,这可能会很棘手。 在这种情况下,您可以像我一样。

    • 禁用Firefox更新检查
    • 在单独目录名称的新文件夹中安装。

      安装[5]

    • 首次运行此程序时,只需取消初始更新过程即可。 当您禁用了Firefox更新(在更新的Firefox中)时,请确保您也看到了此Firefox 26中禁用的更新设置。

    注意:这部分有点棘手,我提供了单独的文章来解决它。

    对于Jmeter远程执行或本地,最好只有一个Firefox(版本26)没有自动更新设置,这样可以最大程度地降低测试执行的复杂性。

  4. 将firefox 26,硒服务器保留在路径变量中。 要进行检查,请从命令行键入firefox并运行。 您应该看到,firefox 26在桌面启动。

    图片[18]

    图片[9]

    图片[19]

  5. 设置Jmeter:通常,对于Webdriver采样器,我们不需要任何其他东西。 但是,由于需要调试,因此可以在user.properties文件中使用以下属性。

    webDriverJmeter [5]

    它启用了子采样,非常适合调试。

    webdriver.sampleresult_class=true

    让我解释一下它如何工作的: JMeter webdriver sampler只是http sampler的扩展,而不是使用脚本编辑器的替代。 当运行时,它实际上会调用由webdriver驱动的firefox。 这意味着,它主要将指令发送给webdriver,而webdriver会做所有事情。 现在,您可能想知道代码如何传递到Web驱动程序。 像其他代码支持一样,WebDriver核心按照JSR规范作为外部代码运行。 它实际上是JavaScript执行。 而且,您会看到,就像使用jmeter进行了一些基本修改的Webdriver Java代码一样。 我将提供单独的博客或编码。

    在将步骤写为webdriver脚本后,使用侦听器获取时间。 与其他采样器一样,您可以使用侦听器进行明智的调试。

浏览器支持

只需点击此链接 ,其中提到了webdriver sampler支持的可配置浏览器名称。 您也可以从jmeter中看到这一点:

图片[4]

时间测量

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添加单独的线程组或测试块。

我们将在以下时间运行以衡量客户端执行时间:

  1. 用户负载不大时
  2. 当服务器上的平均负载
  3. 高负荷时(视为峰值负荷)

有时,也可以测试以下内容:

  1. 超出容量时,可能会发生错误,也可能在错误发生之后。
  2. 作为连续性能测试。 通常,人们每天或每周使用jmeter进行选定的回归测试。

同样,该公式很简单, 用于单个客户端性能测试的1个CPU线程。

而且,您只需像Jmeter测试一样运行测试即可。

翻译自: https://www.javacodegeeks.com/2015/01/how-to-perform-client-side-web-performance-testing-in-jmeter.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/361077.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

inline-block的兼容性问题

我们都知道在IE6 7 中用*display:block;*zoom:1;可以解决 inline-block 的兼容问题 很多人认为IE6 7 是不支持inline-block的,严格来说应该是:IE6 7 对 inline-block 支持的不够完全 这个要分两种情况来说&…

用Java读取/写入压缩和非压缩文件

这篇文章的主要原因是尝试不重复自己( DRY ),因为通常,我会遇到读写压缩和非压缩文件(主要是JSON和CSV)的递归需求。 首先让我们看看如何读取文本文件。 注意我正在使用(相对较小的&#xff09…

Gradle入门:创建多项目构建

尽管我们只能使用一个模块来创建一个工作的应用程序,但是有时将我们的应用程序划分为多个较小的模块是比较明智​​的。 因为这是一个相当普遍的用例,所以每个自重的构建工具都必须支持它,Gradle也不例外。 如果Gradle项目具有多个模块&…

float

1.float元素有继承属性:inherit. 2. span{width:100px;height:100px;background:red; } 文档中不显示,因为span为块状元素,不能设置宽和高。 3. span{width:100px;height:100px;background:red;float:left; } 此时在文…

[转载]Buffon投针实验:究竟为什么是pi?

Buffon投针实验:究竟为什么是pi? Brain Storm | 2009-11-06 20:16| 57 Comments | 本文内容遵从CC版权协议 转载请注明出自matrix67.com数学学习真正悲哀的就是,记住了某个神奇而伟大的定理,看懂了其最严密的推导过程,…

EE Servlet 3:使用会话和过滤器开发用户登录

我在上一篇文章中介绍了Application类,您可以在其中设置后端服务。 我添加的一个示例服务是UserService 。 该服务将加载包含用户名和密码集的Java用户属性文件; 稍后将用于对用户进行身份验证以登录到Web应用程序。 现在,我将展示如何使用标…

Ajax应用查询员工信息

首先要用上一篇的步骤启动服务器&#xff0c;建立站点。然后在该站点下创建php文件和html文件。 php代码如下&#xff0c;文件名为server.php <?php //设置页面内容是html编码格式是utf-8 header("Content-Type: text/plain;charsetutf-8"); //header("Co…

局域网基础知识

一、局域网的特征&#xff1a;   局域网分布范围小&#xff0c;投资少&#xff0c;配置简单等&#xff0c;具有如下特征&#xff1a;     1&#xff0e;传输速率高&#xff1a;一般为1Mbps--20Mbps&#xff0c;光纤高速网可达100Mbps&#xff0c;1000MbpS     2&…

初始化懒惰关系以及何时使用它们的5种方法

实体之间关系的延迟加载是JPA中公认的最佳实践。 它的主要目标是仅从数据库中检索请求的实体&#xff0c;并仅在需要时加载相关实体。 如果我们只需要请求的实体&#xff0c;那是一个很好的方法。 但是&#xff0c;如果我们还需要一些相关实体&#xff0c;它会增加工作量&#…

fieldset ----- 不常用的HTML标签

fieldset 元素可将表单内的相关元素分组。 <fieldset> 标签将表单内容的一部分打包&#xff0c;生成一组相关表单的字段。 当一组表单元素放到 <fieldset> 标签内时&#xff0c;浏览器会以特殊方式来显示它们&#xff0c;它们可能有特殊的边界、3D 效果&#xff…

谷歌移动应用强调设计元素:向极简风格转型

导语&#xff1a;美国科技博客TechCrunch今天撰文称&#xff0c;一向不看重设计的谷歌&#xff0c;最近也开始在移动应用中强调设计元素&#xff0c;并向极简风格转型。 以下为文章全文&#xff1a; 谷歌的设计向来不够酷&#xff0c;Gmail和Google Docs的功能都很不错&#xf…

Java 8流和Lambda表达式–解析文件示例

最近&#xff0c;我想从输出日志中提取某些数据。 这是日志文件的一部分&#xff1a; 2015-01-06 11:33:03 b.s.d.task [INFO] Emitting: eVentToRequestsBolt __ack_ack [-6722594615019711369 -1335723027906100557] 2015-01-06 11:33:03 c.s.p.d.PackagesProvider [INFO] -…

使用入站适配器公开HTTP Restful API。 第1部分(XML)

1.简介 这篇文章的目的是使用Spring Integration HTTP入站适配器实现HTTP Restful API。 本教程分为两个部分&#xff1a; XML配置示例&#xff08;同一篇文章&#xff09;。 Java DSL示例。 这将在本教程的下一部分中进行说明&#xff0c;展示如何使用Spring Integration Ja…

根据thickbox定制自己的遮罩层

Jquery有很多遮罩层插件&#xff0c;我使用了一款叫做thickbox的插件&#xff0c;效果很好。 但现在我要和后台交互&#xff0c;后台处理数据时间较长&#xff0c;为了提示用户&#xff0c;同时不让用户进行其他操作&#xff0c;这时候thickbox就不适用了&#xff0c;因为它允许…

Es6学习笔记(7)----数组的扩展

参考书《ECMAScript 6入门》http://es6.ruanyifeng.com/数组的扩展1.扩展运算符:可以将数组转化成逗号隔离的单个参数...[1,2,3] //控制台运行报错console.log(...[1,2,3]);//1,2,3(1)代替apply方法function test(a,b){return a b;}test.apply(null,[1,2]) 同 test(...[1,2]) 作…

使用jOOQ和JavaFX将SQL数据转换为图表

最近&#xff0c;我们已经展示了Java 8和函数式编程将如何为使用jOOQ和Java 8 lambda和Streams进行SQL数据的函数数据转换为Java开发人员带来新的视角。 今天&#xff0c;我们将这一步骤更进一步&#xff0c;将数据转换为JavaFX XYChart.Series以根据数据生成美观的条形图。 设…

有一只猪400斤,桥承重200斤,怎么过桥?

条件:1 猪是活猪,任何方案都不 能切割猪。2 故事发生在猪王国&#xff0c;不要引 入人的因素。3 是过桥&#xff0c;不是过河&#xff0c;不要 说游泳过去。4 是过桥&#xff0c;不是过涧&#xff0c;不要 说飞过去。5 桥是承重200斤的桥&#xff0c;把桥 挪到平地上抑或过另一…

node.js学习笔记(1)

一&#xff0e; 安装以及环境配置 安装路径 http://nodejs.cn/download/ 多种环境选择 环境变量的配置 Step1 先检查环境变量中的系统变量里面的path,查看是否加入了node.js 例如我的node.js安装路径是C:\Program Files\nodejs 那么&#xff0c;这个path里面就应该加…

do语句转化为局部函数一例

do: (do ((x a (b x)) (y c (d y))) ((test x y) (z x y)) (f x y)) 局部函数&#xff1a; (labels ((rec (x y) (cond ((test x y) (z x y)) (t (f x y) (rec (b x) (d y)))))) …

主要版本发布后Java开发人员应使用的15种工具

新部署的生存工具包&#xff1a;适用于Java开发人员的工具&#xff0c;这些工具经常将代码部署到生产中&#xff01; Takipi会检测生产中的所有错误&#xff0c;并像发生错误时一样显示变量值 立即部署并获得免费的T恤 适用于新部署的终极生存套件 与在僵尸末日场景下玩弄&…