测试工具之jmeter(创建一个简单测试用例)

watertaro watertaro     2022-12-26     427

关键词:

 

前面介绍了如何使用badboy录制jmeter脚本,以及如何导入脚本并进行测试

这里介绍下手动创建测试用例,主要步骤如下:

 

1、创建线程组

第一次打开Jmeter只有一个测试计划,右键“测试计划”选择“添加” -> “Threads” -> “线程组”,即可得到如下配置界面:

技术分享图片

 

名称:即这个线程组的名字

注释:对这个线程组的注释

在取样器执行错误后的操作:根据需要勾选后续执行情况,一般都会选择继续

线程数:即总的测试次数(模拟的用户操作)

Ramp-up period:执行完所有线程数所用的时间,比如线程数为100,执行时间设置为20秒,那么每秒应该会增加5个用户操作。

  如果没有指定时间,则Jmeter会立即建立所有线程(启动所有线程数的用户操作)

循环次数:表示这个线程组需要执行多少个循环,如果选择“永远”,那就一直执行下去,除非手动停止

Delay Thread Creation until needed:看了官方的解释和自己实际应用,意思应该如下:

  当线程需要执行的时候,才会被创建。如果不选择这个选项,那么,在计划开始的时候,所有需要的线程就都被创建好了

调度器:勾选后,下面的“调度器配置”就可以填写相关信息

调度器配置.持续时间:即每个线程执行的时间,即模拟用户的在线时长

调度器配置.启动延时:即这个测试用例在开始后多长时间开始执行

调度器配置.启动时间:测试计划开始后,在什么时间开始执行。开始执行后还是会有上面的启动延时存在(如果启动延时配置了)

调度器配置.结束时间:测试计划结束的时间,到时间后,会停止所有线程

 

2、创建取样器

在取样器中选择“http请求”,并配置访问baidu网页,如下:

技术分享图片

名称:给取样器取个名字

注释:对取样器进行注释

Basic.Web服务器.服务器名称或IP:这里填写百度网址即可

Basic.Web服务器.端口号:http默认端口号80,如果是其他自定义的端口,直接填写即可

Basic.Web服务器.Timeouts.Connect:连接超时时间

Basic.Web服务器.Timeouts.Response:响应超时时间

Advanced.Embedded Resources  from HTML Files:如果勾选了,则会下载所有资源

Advanced.Source Address:一般用于IP欺骗(Implementation为HTTPClient有效)

Basic.HTTP请求.Implementation:默认是HttpClient4

Basic.HTTP请求.协议:根据实际情况填写。这里填http

Basic.HTTP请求.方法:get。方法有很多,一般用得比较多的是get和post

Basic.HTTP请求.Content encoding:编码方式

Basic.HTTP请求.路径:域名后面部分。这里我们访问的是百度首页,不用填写

Basic.HTTP请求.自动重定向:只支持GET,HEAD方法。 如果请求有重定向的话,会只显示终的结果,Jmeter 不会显示重定向的过程

Basic.HTTP请求.跟随重定向:与“自动重定向”之前只能选择一个。如果请求有重定向的话, Jmeter 会显示重定向的过程

Basic.HTTP请求.Use Keep Alive:直接勾选即可

Basic.HTTP请求.Use multipart/form-data for HTTP POST:当需要上传文件时需要勾选

Basic.HTTP请求.Browser-compatible headers:当勾选了Use multipart/form-data for HTTP POST后,可以选择这个,

  可以保证不受HTTP信息头管理器设置的Content-Type 和Content-Transfer-Encoding 影响

Basic.HTTP请求.Parameters:http消息请求的参数。参数值包含特殊字符比如’&’,jmeter会自动转义为’%26’

Basic.HTTP请求.Body:使用文本形式发送请求参数。一般是json或xml

Basic.HTTP请求.Files Upload:文件名称: 要上传的文件,包括路径 2. 参数名称: 请求参数名称 3. MIME类型:MIME type (for example, text/plain)

Basic.Proxy server:代理服务器设置

 

这样测试用例就写好了,可以执行了,执行完成后,点击下面红框(或菜单“选项” -> Log Viewer)可以显示执行日志:

技术分享图片

 

这里没看出报错,我们再添加监听器(查看结果树),再执行以下,看到报错了:

技术分享图片

 

看报错信息,Jmeter把我们设置的网址又加了一个http://,也就是Jmeter不需要我们去加这个头,我们直接去掉再测试一遍:

技术分享图片

 

这时候看到正常了~,一个简单的测试用例就完成了,这里我们也可以加个断言,判断响应返回码是否为正确的(200为正常):

技术分享图片

 

重新执行一下,通过。如果这里随便填个,可能就会执行失败

 

jmeter接口测试系列之测试用例编写和调用

在使用Jmeter进行接口测试时,首先需要根据接口定义,编写响应的接口测试用例,在编写接口测试用例时,我们根据测试的侧重点不同,使用不同的方式编译测试用例。一种是:整个请求参数作为一个变量,进行测试执行;一种... 查看详情

jmeter接口测试系列之测试用例变量参数化处理

在进行接口测试时,一组完整的接口测试用例,存在后一个测试用例使用前一个用例的请求结果中的数据,此时就需要参数化测试用例中值。直接使用变量调用会存在问题,此时就需要用到beanshell去改变。举例说明:比如接口1... 查看详情

jmeter基础之一个简单的性能测试

我们了解了jmeter的一此主要元件,创建一个简单的测试计划来使用这些元件。该计划对应的测试需求:  1)测试目标网站是www.51cto.com  2)测试目的是该网站在负载达到20QPS时的响应时间。  ● QPS解释  QPS:QueryPerSecond... 查看详情

jmeter接口测试之参数传递(十三)

...在这里理清思路,它的流程是,首先获取到数据,然后在Jmeter中,通过后置处理器中的[email protected]-JSONPathExtractor把响应数据中的需要处理的数据单独的取出来,定义成一个变量,然后在下个接口调用的时候,把该变量的值... 查看详情

jmeter接口测试系列之判断测试结果

在使用jmeter进行接口测试时,我们需要根据测试用例判断其测试结果是否一致,判断其执行是否成功。在jmeter中也可以使用响应断言去判断,但是有时我们需要根据不同的用例,其判断条件不同,所以这里我们可以使用BeanShell断... 查看详情

jmeter之一个简单的性能测试

测试资源准备:1)测试目标网站是https://www.cnblogs.com/DeryKong/ 2)测试目的是该网站在负载达到20 QPS 时的响应时间。 QPS 解释  QPS: Query Per Second 每秒查询率。是一台查询服务器每秒能够处理的... 查看详情

jmeter常用脚本开发之junitrequest

说明:JunitRequest就是把Junit测试框架的自动化用例在jmeter上执行步骤:1、创建Java工程,编写Junit自动化测试用例2、然后把用例打成jar包,复制到Jmter的libjunit目录下3、然后添加Junit请求,填写后内容如图执行结果  查看详情

jmeter4.0接口测试之断言实战

...断言,最后是某一接口请求后服务端响应数据的断言。在Jmeter中增加断言的方式是右键测试用例点击断言,在断言中点击响应断言,在响应断言中,要测试的模式填写内容:HTTP/1.1200OK,要测试的响应字段勾选ResponseHeaders,模式匹... 查看详情

postman系列之批量执行接口测试用例

...tman帮助我们完美地解决了这个问题~具体操作请见下文一.创建测试用例集、子集如下图,点击post 查看详情

单元测试框架之unittest(代码片段)

...的准备工作和执行结束后的一些相关清理工作,这包括:创建临时或代理数据库、目录或开始服务器进程。2、testcase  一个testcase是一个独立的测试单元,针对于一组特定的输入得到的特殊相应的验证,通过继承unittest提供的... 查看详情

golang之wait.until简单测试用例(代码片段)

测试目的,验证wait.Until的用法//测试wait.Until()的用途packagemainimport("fmt""k8s.io/apimachinery/pkg/util/wait""time")typestopstructfuncmain()stopCh:=make(chanstruct)//初始化一个计数器i:=0gowait.Until(func()fmt.Print 查看详情

jmeter组件之testfragment

1、JMeter中的TestFragment,是控制器上一个种特殊的线程组,它在测试树上与线程组处于一个层级。但使用时需要和includeController或者ModuleController配合。它的主要作用是模块化测试过程,类似于编程语言中的函数。即,将测试过程... 查看详情

jmeter系列之—-02创建数据库测试计划

Jmeter创建数据库测试计划,包括如下步骤:1.添加数据库jar包使用不同的数据库,要引入不同的jar包。主要有两种方式:方式1:直接将jar包复制到jmeter的lib目录方式2:通过测试计划 Jmeter的测试计划可以引入相应的jar包 &n... 查看详情

一文揭秘测试平台中是如何将测试用例一键转化jmeter压测脚本(代码片段)

...p; ?接上篇,一键转化将接口测试平台测试用例转化成Jmeter压测脚本思路,这里我首先在java上面做了一个简单的实验,看看转化的中间遇到的问题,这里呢,我只是给了一个简单的demo版本,后续结合项目的实际的实用,还是... 查看详情

jmeter基础之一一个简单的性能测试

上一节中,我们了解了jmeter的一此主要元件,那么这些元件如何使用到性能测试中呢。这一节创建一个简单的测试计划来使用这些元件。该计划对应的测试需求。1)测试目标网站是fnng.cnblogs.com  和 tt-topia.rhcloud.com2)... 查看详情

jmeter接口测试系列之保存断言结果到文件

在执行完接口测试用例后,我们需要将失败的用例结果统一保存到文件中,可以使用“断言结果”组件,并定制输出内容。1、配置断言结果组件输出 (1、在文件名中配置需要保存的文件路径和文件名;(2、勾选仅日志错误... 查看详情

jmeter基础之编写http接口用例

使用Jmeter书写一个接口用例第一:添加线程组一、添加一个线程组,方法如下图所示: 二、配置线程组,如下图图所示: 需要填写名称,按需要修改线程数、等待时间和循环次数等; 第二:添加http请求一、添加http... 查看详情

jmeter组件之-testfragment(测试片段)

...estFragment主要是用来进行脚本重用。应用场景:  1)当jmeter脚本非常复杂的时候,可以通过测试片段分模块管理用例  2)当jmeter脚本由多个测试人员共同完成,通过测试片段分人分模块管理用例2、模块控制器调用TestFragment... 查看详情