1 JMeter的安装
1.1 JDK的安装
由于Jmeter是基于java开发,首先需要下载安装JDK (目前JMeter只支持到Java 8,尚不支持 Java 9)。
- 官网下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
- 选择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”,如下图所示:
- 添加线程组
右键点击“测试计划” -> “添加” -> “Threads(Users)” -> “线程组”
这里可以配置线程组名称,线程数,准备时长(Ramp-Up Period(in seconds))循环次数,调度器等参数:
线程组参数详解:
- 线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。
- Ramp-Up Period(in seconds)准备时长:设置的虚拟用户数需要多长时间全部启动。如果线程数为10,准备时长为2,那么需要2秒钟启动10个线程,也就是每秒钟启动5个线程。
- 循环次数:每个线程发送请求的次数。如果线程数为10,循环次数为100,那么每个线程发送100次请求。总请求数为10*100=1000 。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。
- Delay Thread creation until needed:直到需要时延迟线程的创建。
- 调度器:设置线程组启动的开始时间和结束时间(配置调度器时,需要勾选循环次数为永远)
持续时间(秒):测试持续时间,会覆盖结束时间
启动延迟(秒):测试延迟启动时间,会覆盖启动时间
启动时间:测试启动时间,启动延迟会覆盖它。当启动时间已过,手动只需测试时当前时间也会覆盖它。
结束时间:测试结束时间,持续时间会覆盖它。
因为接口调试需要,我们暂时均使用默认设置,待后面真正执行性能测试时再回来配置。
- 添加HTTP请求
右键点击“线程组” -> “添加” -> “取样器” -> “HTTP请求”
根据接口文档添加相应的内容
名称:本属性用于标识一个取样器,建议使用一个有意义的名称。
注释:对于测试没有任何作用,仅用户记录用户可读的注释信息。
服务器名称或IP :HTTP请求发送的目标服务器名称或IP地址。
端口号:目标服务器的端口号,默认值为80 。
协议:向目标服务器发送HTTP请求时的协议,可以是HTTP或者是HTTPS ,默认值为http 。
方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。
Content encoding :内容的编码方式,默认值为iso8859
路径:目标URL路径(不包括服务器地址和端口)
自动重定向:如果选中该选项,当发送HTTP请求后得到的响应是302/301时,JMeter 自动重定向到新的页面。
Use keep Alive : 当该选项被选中时,jmeter 和目标服务器之间使用 Keep-Alive方式进行HTTP通信,默认选中。
Use multipart/from-data for HTTP POST :当发送HTTP POST 请求时,使用Use multipart/from-data方法发送,默认不选中。
同请求一起发送参数 : 在请求中发送URL参数,对于带参数的URL ,jmeter提供了一个简单的对参数化的方法。用户可以将URL中所有参数设置在本表中,表中的每一行是一个参数值对(对应RUL中的 名称1=值1)。
- 添加查看结果树
右键点击“线程组” -> “添加” -> “监听器” -> “察看结果树”
- 查看请求结果
运行后就可以查看结果了
后面运行其他实例时不再如此详细介绍,只介绍不同的部分
2.2 登录(POST请求)
在登录接口中,接口文档提供了一个测试用户,可以利用该用户模拟测试
登录接口用到的是POST请求方式,入参 username 和 passwd 为必填项,我们再创建1个线程组,在线程组下添加一个HTTP请求和察看结果树,如下:
2.3 添加学生信息(POST请求,JISON类型)
在添加学生信息的接口中,用到的也是POST请求方式,但与登录接口不同的是,它的入参是JSON类型的,接口文档中有1个JSON请求示例,我们可以直接复制过来,简单修改一下即可。在这里,我们再创建1个线程组,在线程组下添加一个HTTP请求和察看结果树,如下:
2.4 学生充值金币(POST请求,添加COOKIE)
根据接口文档,设计测试用例
我们创建一个线程组,在线程组下依次添加登录请求、学生充值金币请求、察看结果树,在登录请求下添加JSON提取器,用于提取cookie,在学生充值金币请求下添加HTTP Cookie管理器,如下:
登录:
充值:
2.5 获取所有学生的信息(GET请求,添加Header)
接口文档:
从接口文档中,我们了解到,要获取所有学生信息,需要添加请求信息头,因此,我们创建一个线程组,在线程组下依次添加HTTP信息头管理器、HTTP请求、察看结果树,如下:
2.6 文件上传(POST请求)
创建一个线程组,在线程组下依次添加文件上传请求、察看结果树,如下:
上面所述内容就是网上一个接口测试的过程。
在公司实习期间写的实习报告,后面应该会有更新的..............