Jmeter接口测试实例-牛刀小试

本次测试的是基于HTTP协议的接口,主要是经过Jmeter来完成接口测试,借此熟悉Jmeter的基本操做。php

本次实战,我是从网上找的接口测试项目,该项目提供了详细的接口文档,咱们能够经过学习接口文档来设计测试用例,最后再使用Jmeter进行实战。总的来讲,这个项目很适合用来练手,项目网址:http://doc.nnzhp.cn/index.php?s=/6&page_id=8数据库

全部设置以下:json

接口测试项目--牛刀小试

1.获取学生信息(GET请求)

从接口文档中,咱们能够看到获取学生信息用到的是GET方式的请求,入参中 stu_name 为必填项,返回参数太多,在此就不详细说明了。咱们先建立一个线程组,在线程组下添加一个HTTP请求和察看结果树,以下:api

获取学生信息

获取信息成功

上面的是请求正确的结果,若是请求错误,好比填写一个系统数据库中 stu_name 没有的值,那么返回结果以下:cookie

获取信息失败

2.登陆(POST)

在登陆接口中,接口文档中提供了一个测试用户,咱们能够利用该用户来模拟测试。post

登陆接口文档

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

登陆请求

登陆成功

当咱们填写的是错误的入参时,返回结果以下:测试

登陆失败

3.添加学生信息(POST请求,JSON类型)

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

添加学生信息

添加学生信息失败

在这里,因为这个学生信息已存在系统中了,所以返回添加失败的结果。因此,我须要添加1个新的学生信息,另外,这里须要调整下编码格式为utf-8,不然添加的学生信息会出现中文乱码。线程

添加学生信息

添加成功

在这里,你们能够设计不一样的测试用例来进行测试,但操做方式都是同样的,只是返回结果不一样而已。

4.学生充值金币(POST请求,添加cookie)

这个接口有权限验证,须要admin用户登陆成功后才能够进行充值,另外,在入参 stu_id 和 gold 中,咱们发现 stu_id 指的是学生ID,这里其实就是最开始 获取学生信息 接口返回结果中的id字段,以下:

获取学生ID

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

登陆请求

JSON提取用户的cookie

调试后置处理程序

充值金币请求

关联cookie

充值成功

在JSON提取器中,咱们经过 $.login_info.sign 来提取登陆的cookie,并在HTTP Cookie管理器中进行引用,若是没有关联cookie,那么将充值失败,提示未登陆。

未登陆,充值失败

5.获取全部学生信息(GET请求,添加header)

从接口文档中,咱们了解到,要获取全部学生信息,须要添加请求信息头,所以,咱们建立一个线程组,在线程组下依次添加HTTP信息头管理器、HTTP请求、察看结果树,以下:

添加header

获取全部学生信息

获取全部学生信息成功

这里须要说一下,咱们在返回的结果中看到,有些学生信息中有不少“???”,这是由于在添加学生信息的时候,咱们传入中文数据致使乱码,所以在添加学生信息接口中,我特地说明让你们设置utf-8编码,这样添加的学生信息就不会出现乱码了。

6.文件上传(POST请求)

在上传文件接口中,须要注意的是这里的入参是file类型的,所以,咱们须要准备一个待上传的文件。

文件上传接口文档

最后,咱们建立一个线程组,在线程组下依次添加文件上传请求、察看结果树,以下:

文件上传请求

文件上传成功

OK,以上就是经过Jmeter对这个接口项目进行接口测试的过程,比较基础,适合新手用来练习操做Jmeter,另外,我发现还有另一个接口项目:抽奖项目api(http://doc.nnzhp.cn/index.php?s=/5&page_id=7),感受和本次测试项目差很少,你们有兴趣的能够尝试下,后续有时间的话,将考虑经过Python对本项目进行接口测试。

最后,经过本项目,能够看到,Jmeter上手起来挺快的,即便不懂代码的同窗学会Jmeter的基本操做后,也能够很快进行接口测试实践。