1 JMeter的安装

1.1 JDK的安装

由于Jmeter是基于java开发,首先需要下载安装JDK (目前JMeter只支持到Java 8,尚不支持 Java 9)

  1. 官网下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
  2. 选择Java SE 8u151/ 8u152,点击JDK下载 

1.2 JMeter安装

官网下载地址:http://jmeter.apache.org/download_jmeter.cgi

1.下载完成后解压zip包

2.启动JMeter 双击JMeter解压路径(apache-jmeter-3.3\bin)bin下面的jmeter.bat即可 要以管理员身份运行

2 接口测试实例

项目网址:http://doc.nnzhp.cn/index.php?s=/6&page_id=8

这是在网上找的接口测试项目,本次测试是基于HTTP协议的接口,该项目提供了详细的接口文档,我们可以通过学习接口文档来设计测试用例。

2.1 获取学生信息(GET请求)

具体步骤如下:

  • 启动JMeter

以管理员身份运行jmeter.bat,在运行JMeter过程中不要关闭此命令窗口。

  • 将JMeter汉化(非必要步骤)

点击“Options”-->“Choose Language”-->“Chinese Simplified”,如下图所示:

JMeter学习报告(一)

  • 添加线程组

右键点击“测试计划” -> “添加” -> “Threads(Users)” -> “线程组” 

JMeter学习报告(一)

这里可以配置线程组名称,线程数,准备时长(Ramp-Up Period(in seconds))循环次数,调度器等参数:

JMeter学习报告(一)

 

线程组参数详解: 

  1. 线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。 
  2. Ramp-Up Period(in seconds)准备时长:设置的虚拟用户数需要多长时间全部启动。如果线程数为10,准备时长为2,那么需要2秒钟启动10个线程,也就是每秒钟启动5个线程。 
  3. 循环次数:每个线程发送请求的次数。如果线程数为10,循环次数为100,那么每个线程发送100次请求。总请求数为10*100=1000 。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。 
  4.  Delay Thread creation until needed:直到需要时延迟线程的创建。 
  5. 调度器:设置线程组启动的开始时间和结束时间(配置调度器时,需要勾选循环次数为永远) 

持续时间(秒):测试持续时间,会覆盖结束时间 

启动延迟(秒):测试延迟启动时间,会覆盖启动时间 

启动时间:测试启动时间,启动延迟会覆盖它。当启动时间已过,手动只需测试时当前时间也会覆盖它。 

结束时间:测试结束时间,持续时间会覆盖它。

因为接口调试需要,我们暂时均使用默认设置,待后面真正执行性能测试时再回来配置。

  • 添加HTTP请求

右键点击“线程组” -> “添加” -> “取样器” -> “HTTP请求” 

JMeter学习报告(一)

根据接口文档添加相应的内容

JMeter学习报告(一)

JMeter学习报告(一)

  • 添加查看结果树

右键点击“线程组” -> “添加” -> “监听器” -> “察看结果树” 

JMeter学习报告(一)

  • 查看请求结果

运行后就可以查看结果了

JMeter学习报告(一)

后面运行其他实例时不再如此详细介绍,只介绍不同的部分

2.2 登录(POST请求)

在登录接口中,接口文档提供了一个测试用户,可以利用该用户模拟测试

JMeter学习报告(一)

登录接口用到的是POST请求方式,入参 username 和 passwd 为必填项,我们再创建1个线程组,在线程组下添加一个HTTP请求和察看结果树,如下:

JMeter学习报告(一)

JMeter学习报告(一)

2.3 添加学生信息(POST请求,JISON类型)

在添加学生信息的接口中,用到的也是POST请求方式,但与登录接口不同的是,它的入参是JSON类型的,接口文档中有1个JSON请求示例,我们可以直接复制过来,简单修改一下即可。在这里,我们再创建1个线程组,在线程组下添加一个HTTP请求和察看结果树,如下:

JMeter学习报告(一)

JMeter学习报告(一)

JMeter学习报告(一)

2.4 学生充值金币(POST请求,添加COOKIE)

根据接口文档,设计测试用例

JMeter学习报告(一)

我们创建一个线程组,在线程组下依次添加登录请求、学生充值金币请求、察看结果树,在登录请求下添加JSON提取器,用于提取cookie,在学生充值金币请求下添加HTTP Cookie管理器,如下:

登录:

JMeter学习报告(一)

JMeter学习报告(一)

JMeter学习报告(一)

充值:

JMeter学习报告(一)

JMeter学习报告(一)

JMeter学习报告(一)

2.5 获取所有学生的信息(GET请求,添加Header)

接口文档:

JMeter学习报告(一)

从接口文档中,我们了解到,要获取所有学生信息,需要添加请求信息头,因此,我们创建一个线程组,在线程组下依次添加HTTP信息头管理器、HTTP请求、察看结果树,如下:

JMeter学习报告(一)

JMeter学习报告(一)

 

2.6 文件上传(POST请求)

创建一个线程组,在线程组下依次添加文件上传请求、察看结果树,如下:

JMeter学习报告(一)

JMeter学习报告(一)

上面所述内容就是网上一个接口测试的过程。

在公司实习期间写的实习报告,后面应该会有更新的..............

相关文章: