JMeter

无gui运行

无gui运行(虚机上需要先装jmeter)

  • jmeter -n -t D:\software\jmeter_test\seg.jmx -l D:\software\jmeter_test\Segjtl -e -o D:\software\jmeter_test\SegReport
  • jmeter -n -t E:\testplan.jmx -l E:\read.jtl -e -o E:\ResultReport

此次测试相当于:1个线程,循环1次,共计1个请求。 -J 设置变量值

  • jmeter -n -t 知识管理台1.5稳定性测试脚本.jmx -J threadNum=1 -J rampupTime=1 -J sustainableTime=10 -l result.jtl

-n 无gui运行
-t 运行脚本
-J 设置变量
-l  样本记录到文件
-e -o 讲记录转成报告

查看报告,打开jmeter,添加测试计划-聚合报告,添加报告

概述

  1. 添加线程组,模拟用户并发
  2. 添加用户定义变量,更真实的求情
  3. 添加http请求,参数可以使用定义的变量
  4. 添加断言,及断言结果,简单判断请求响应是否正确
  5. 添加查看结果树,查看每个请求的结果
  6. 添加聚合报告,观察整体性能

一.线程组介绍

原出处:点击打开链接

如上图:

名称:可以随意取,我们保持创建是自动分配的名称

注释:随意

在取样器错误后要执行的动作:我们选择继续,错误之后依然继续执行

线程数:一般我们用来表示多少个用户,即我们测试时的用户数量

Ramp-up Period(in Seconds):表示每个用户启动的延迟时间,上述我设为1秒,表示系统将在1秒结束前启动我设置的1000个用户,如果设置为1000秒,那么系统将会在1000秒结束前启动这1000个用户,开始用户的延迟为1秒, 如果我设置为0秒,则表示立即启动所有用户。

循环次数:如果你要限定循环次数为10次的话,可以取消永远的那个勾,然后在后面的文本框里面填写10;在这里我们勾上永远,表示如果不停止或者限定时间将会一直执行下去, 是为了方便调度器的调用。

调度器的配置:我们勾选调度器时,将会出现这个面板

启动时间:表示我们脚本开始启动的时间,当你不想立即启动脚本测试,但是启动脚本的时间不会再电脑旁的时候,你可以设定一个启动的时间,然后再运行那里点击启动,系统将不会立即运行,而是会等到你填写的时间才开始运行。

结束时间:与启动时间对应,表示脚本结束运行的时间。

持续时间:表示脚本持续运行的时间,以秒为单位,比如如果你要让用户持续不断登录1个小时,你可以在文本框中填写3600。如果在1小时以内,结束时间已经到达,它将会覆盖结束时间,继续执行。 (即可以表示成优先级比结束时间高,如果持续时间比结束时间先到了,那么就将停止线程)

启动延迟:表示脚本延迟启动的时间,在点击启动后,如果启动时间已经到达,但是还没有到启动延迟的时间,那么,启动延迟将会覆盖启动时间,等到启动延迟的时间到达后,再运行系统。 

PS:如果要设置线程组定时跑5分钟,那么直接在线程组中设置持续时间为300s即可,不用管启动时间或结束时间

注意:如果我们需要用到调度器来设定持续时间,如果线程数不够多到持续时间结束,我们就必须将循环次数勾选为永远,特别地,如果线程组里面有其他的循环,我们也需将该循环次数勾选为永远(如我上面录制的脚本中的Step1也是一个循环,需要将永远勾选),否则,按我如上配置,将永远去掉勾选,文本里填1,那么无论你将持续时间启动时间结束时间等设置多少,系统运行1000次后,将会停止不再运行。

二.CSV Data Set Config设置

出处

概念介绍另一个链接

(ps:CSV是一种通用的、相对简单的文件格式

填写项说明:

1、名称、注释:元件的名称及注释

2、Config the CSV Data Source:

1)Filename:csv文件的名称(包括路径,当csv文件在bin目录下时,只需给出文件名即可)

2)File encoding:csv文件编码,可以不填

3)Variable Names(comma-delimited):csv文件中各列的名字(有多列时,用英文逗号隔开列名),这个变量名称是在其他处被引用的,所以为必填项。

4)Delimiter(use “\t” for tab):csv文件中的分隔符(用”\t”代替tab键)(一般情况下,分隔符为英文逗号)

5)Allow quoted data?:是否允许引用数据,---这个目前还未弄明白,设置成True或者False都能正常引用数据。

Allow quoted data?: 双引号相关. 设置为True,则会将CVS文件中的双重双引号只读取一个;设置为False,则会将CVS文件间中的所有双引号当为有效字符传入

可以做一个例子,设置一个data.csv,内容如下

5

6

“1,2”

“3,4”

然后运行一下就懂了

6)Recycle on EOF?:到了文件尾是否循环,True—继续从文件第一行开始读取,False—不再循环

7)Stop thread on EOF?:到了文件尾是否停止线程,True—停止,False—不停止,注:当Recycle on EOF设置为True时,此项设置无效。

8)Sharing mode:共享模式,All threads –所有线程,Current thread group—当前线程组,Current thread—当前线程。这个地方和[url=]LoadRunner[/url]中的迭代取之相反,经试验得出来的结果是:

Ø All threads:[url=]测试[/url]计划中所有线程,假如说有线程1到线程n (n>1),线程1取了一次值后,线程2取值时,取到的是csv文件中的下一行,即与线程1取的不是同一行。

Ø Current thread group:当前线程组,假设有线程组A、线程组B,A组内有线程A1到线程An,线程组B内有线程B1到线程Bn。取之情况是:线程A1取到了第1行,线程A2取第2行,现在B1取第1行,线程B2取第2行。

Ø Current thread:当前线程。假设测试计划内有线程1到线程n (n>1),则线程1取了第1行,线程2也取第1行。

示例:

二.启动jmeter.bat进入jmeter界面

1.添加线程组

右击“测试计划”-添加-Threads-线程组;

注:如果是英文jmeter可通过“选项”-选择语言-Chinese更改;

2.添加并配置CSV Data Set Config

(1)添加:

右击“线程组”-添加-配置元件-CSV Data Set Config;

(2)配置CSV Data SetConfig参数信息

Filename:制定的文档路径和名字;可以右击文档-属性,找到文档的路径,注意要写上文档名字和后缀;

File enconding:编码格式,如果txt文档中有中文,该行就要写入utf-8;

Variable Names:定义参数;txt文档中有几列就定义几个参数;参数见用英文逗号隔开;直接写wxid,在其他模块用的时候直接${wxid}调用即可;

Recycle on EOF:到了文件尾处,是否循环读取参数;

Stop thread on EOF:到了文件尾,是否停止线程;

(3)若:想把文档中所有数据读取一遍,且不重复,那么就要设置为:

Recycle on EOF:False;

Stop thread on EOF:True;

3.添加http请求并配置

(1)添加:右击“线程组”-添加-Sample-HTTP请求;

(2)配置http请求

4.修改线程组配置

因为我们只写了一个http请求,所以点击运行只会运行一次,我们想把txt文档中所有行都执行一遍,所以我们要将线程数修改;目前txt中共175行,所以线程组中线程数我们设置为175;

5.监听结果:添加“查看结果树”和“聚合报告”

查看结果树:可以看到每个请求的执行成功失败;

聚合报告:可以看出总共执行数和失败情况等;

6.点击运行,查看结果

点击绿色箭头运行,查看结果

(1)在“查看结果树”中,可以看到参数请求的是那个值:

(2)在“聚合报告”可以看所有线程有没有执行完成

以上结果,只是让txt文档中数据全部执行了1遍,如果想执行多次,那么我们就要让http请求重复执行了;

7.重复执行http请求

(1)添加循环控制器:

右击http请求-插入上级-逻辑控制器-循环控制器;

(2)配置循环次数

8.再次查看运行结果:

一共175条数据*3=525条记录;

一般而言,性能测试中我们需要重点关注的数据有: #Samples 请求数,Average 平均响应时间,Min 最小响应时间,Max 最大响应时间,Error% 错误率及Throughput 吞吐量。

Label:每个 JMeter 的 element (例如 HTTP Request )都有一个 Name 属性,这里显示 的就是 Name 属性的值  v 

#Samples:表示你这次测试中一共发出了多少个请求,如果测试计划模拟10个用户, 每个用户迭代10次,总体就会显示100  

Average:平均响应时间 — 默认情况下是单个 Request 的平均响应时间,当使用了事务 控制器时,也可以以事务为单位显示平均响应时间  v

Median:中位数,也就是 50 %用户的响应时间  v 

90% Line: 90 %用户的响应时间 v 

Min:最小响应时间   

Max:最大响应时间  

Std.Dev:Standard Deviation 标准差

Error%:错误率,本次测试中出现错误的请求的数量 / 请求的总数 v 

Throughput:吞吐量,默认情况下表示每秒完成的请求数( Request per Second ) v 

Received KB/Sec:每秒从服务器端接收到的数据量

Sent KB/Sec:每秒发送的数据量

Avg.Bytes:服务端返回Request数据的平均值,理解为:服务端返回所有数据/请求数

到此我们就完成了,多用户多次抽奖的功能;

多用户就是txt文档中多行数据,多次抽奖就是单个请求循环3次,如果抽多次就修改次数即可,谢谢观看~

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
课程从基础讲起,全课程以实战为主,每个知识点通过实际案例演练讲解理论+实践结合,更容易理解,适合小白,低门槛,快速上手。 课程同时涵盖web端和移动端app测试,同时还加入了抓包工具的使用; 1) 第一阶段为JMETER 5.4.1 (最新版本)工具使用篇,通过Jmeter 介绍和安装、http 取样器、JDBC 取样器、JMETER 组件详细讲解、配置元件、三种参数化方式教你玩转JMETER 参数化、工作过程中间所需的常用函数、聚合报告、察看结果树、汇总报告等监听器知识,后置处理器、后置处理器之正则表达式提取器提取响应内容实践、读取本地JSON格式文件实例、正则表达式操作符、正则表达式工具之Regextester,系统全面学习正则表达式,突破JMETER 知识难点,响应断言、JMETER分布式、分布式原理、搭建JMETER 分布式、WebService协议接口测试。 每一个知识点采用理论加案例的方式,吃透每一个知识点,为性能测试实践奠定基础。 2) 第二阶段为性能测试实践篇1、通过JMETER 实践爬虫技术,爬取第三方平台全网页地址、批量爬取国外网站壁纸10W+图片并保存到本地;2、详细介绍Fiddler 抓包工具,Fiddler 抓包工具原理、Fiddler 抓取PC 端和移动端包信息、JMETER+Fiddler 结合使用对PC 端项目进行性能测试项目实践,提升PC 端性能测试能力;3、JMETER+Fiddler  结合使用对app 项目进行性能测试项目实践,提升app项目性能测试能力4、性能测试常见的业务指标和技术指标、响应时间、TPS、HPS等知识进行讲解5、通过JMETER 对移动端项目进行性能测试实战; 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值