首页 > 编程知识 正文

jmeter怎么录制脚本,jmeter编写java脚本

时间:2023-05-04 01:22:54 阅读:20734 作者:1654

Jmeter记录脚本的方法有两种:使用自己提供的HTTP代理方法进行记录,以及第三方工具Badboy也提供记录支持。 以HTTP代理方式进行录像的原理是,对网络包进行解析,并通过HTTP协议封装为HTTP请求、HTTP响应等对象,这些对象是我们容易识别的。

Jmeter脚本(.jmx )是xml格式、树结构、由符号组成,并使用采样器生成请求。

一、下面先讲解Badboy进行录制

简而言之,Badboy是一个浏览器模拟工具,具有录像和播放功能,也可以调试。 因为它具有捕获表单数据的功能,所以可以使用它进行自动化测试。 也可以使用它来诊断网页、诊断系统响应速度和响应数据大小。 Badboy录制的脚步可以直接生产. jmx格式。

步骤1 :

下载Badboy。 下载地址为http://www.badboy.com.au/,下载. exe文件直接点击安装到自己指定的目录即可

第二步:

打开Badboy,在地址栏中输入请求页面,然后返回汽车或单击-开始录制。

广告的录音方式有请求方式和导航方式两种。 单击工具栏上的" n ",切换导航方式。

这两种方式的区别如下。

request :模仿浏览器将表单信息发送到服务,每个资源都作为请求发送。 Navigation :记录用户的鼠标行为。 类似于著名的自动化工具QTP,播放时模拟点击。 必须根据Jmeter脚本的要求,以request方式进行记录。 这些请求以jmx格式存储,可以导入和复用Jmeter。 Bodboy打开的是默认的请求方法,因此不需要设置。

下面介绍脚本的目录树结构。

测试套件1 :默认的根节点。 类似于Jmeter的测试计划根节点。 Test1 )测试活动的根节点可以理解为业务功能的步伐存储在该目录中。 Step2)测试活动的步骤。 如果一个业务流程很长,可以分为多个测试步骤。 例如,要登录CSDN、进入论坛和发表帖子,可以将录制过程分为三个步骤。 一是登录CSDN,二是访问论坛模块,三是发表帖子。 录像的速度如下图所示。

录制完成后,导出到Jmeter步骤。 在这里,您可以在Jmeter中打开刚才录制的步骤。 Jmeter在树结构中显示脚步,并在运行时原则上按照节点的优先级向下运行。 请参照下图

看看脚中的各个要素

测试计划、Jmeter测试脚本根节点和每个测试脚本都是测试计划,您可以自行为此组件定义名称。 我能做什么呢?

(1)用户全局变量的设定,即“用户定义变量”中的定义

)2)独立运行每个线程组。 如果测试计划中有多个线程组,则设置此项将生效

)3) runteardownthreadgroupsaftershutdownofmainthreads,关闭线程后,运行teardown程序成功关闭线程组(正在运行的线程完成此次迭代)

)4)如果脚本调整期间需要获取服务器返回的详细信息,则可以选择函数测试模式

)5) add directory or jar to classpath,将需要依赖于测试的jar软件包或软件包所在的目录添加到类路径中。

线程组:模拟线程组、虚拟用户的源。 这里说明太多了。 请看这个系列前面的文章。 http Cookie manager :在ie访问网页时记录cookie信息。 Jmeter通过加入HTTP Cookie Manager自动记录cookie信息。 请参照下图

用户定义的变量:用户定义的变量。 在这里,您可以定义后续组件引用的变量并为其赋值。 jsessionid通常是从服务器返回的,每个用户返回的都不同,但Badboy转换的步骤是删除jsessionid,因为它包含在此组件中。

httpheadermanager :管理http标头信息。 包括用户代理、连接、内容类型、接受、Cookie、位置302重定向地址等信息。

剩下的Step1、Step2、Step3将我们录制时的步骤转换为Jmeter脚本

现在播放一下脚本吧。 不幸的是,脚本根本不通过。 需要调整脚本。

二、Jmeter配置代理进行录制

1、浏览器配置管理

打开浏览器,按照【工具】-【互联网选项】-【连接】-【局域网设置】进入如图所示的页面

在代理服务器上,如上图所示进行设置,可以将localhost更改为127.0.0.1,并将端口更改为要设置的端口,但不要与其他端口冲突。 通常,四位端口冲突很少

2、在Jmeter上部署代理

(1)添加线程组,在线程组里面添加HTTP Cookie管理器如下图所示

添加路径是:【线程组】右键--【添加】--【配置元件】-【HTTP Cookie管理器】

(2)添加HTTP代理服务器,添加路径是:【测试计划】右键--【添加】--【非测试元件】-【HTTP代理服务器】

接下来设置代理服务器,(端口号既是我们在浏览器中设置的端口号)

目标控制器:决定将来录制的脚本放在哪个目录(我们把测试计划看成一颗目录树的话,这个目录就是树中的一个节点)。我们可以在【测试计划】-【线程组】下面添加节点,然后指定脚本放在此节点。如下图,我们在【线程组】下添加了【简单控制器】节点,然后我们就可以在“目标控制器”处选择它。

分组:录制脚本时将会增加很多节点,这些节点我们可以给它分组,便于查看与管理。对于HTTP请求我们可以把每一个URL看成是一个组,这样更好理解。如下图

不对样本分组:罗列出录制到的所有HTTP请求。在组间添加分隔:加入以分割线命名的简单控制器。每个组放入一个新的控制器:每个URL产生的请求放在一个控制器下。只存储每个组的第一个样本:我们知道一个URL产生的HTTP请求可能不只一个,一张图片、一个样式表都会是一个HTTP请求,录制时将会产生很多的http请求,但是有时我们测试时会考虑缓存,实际上一些图片不用每次下载,我们也不关心这些图片产生的负载,我们可以根据实际情况选择忽略他们,只录制产生动态数据的http请求Put each group in a new transaction controller:通俗点说就是每个URL的请求放入一个事务中,不管它有多少个HTTP请求,只要这个URL请求产生的

记录HTTP头信息:把Header头信息也录制下来。

添加断言:通俗讲就是检查点,在录制时加入空的检查点,后续我们需要自己填写断言规则。

Regex matching:检查点用正则表达式来匹配内容。

如何排除我们不需要的信息呢?看下图

例如:在包含模式里我们可以填“.*.jsp”,意思是只在请求JSP文件时录制脚本

在排除模式上填“.*.js”,在请求js文件时不录制脚本(通常js png gif css php woff 这些类型的文件都是不需要的)

这样可以根据实际情况来过滤自己不需要的文件

3、开始录制

 

 

 

 

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。