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

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

所有设置如下:

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

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

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

2.登录(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字段,如下:

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

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

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

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

这里需要说一下,我们在返回的结果中看到,有些学生信息中有很多“???”,这是因为在添加学生信息的时候,我们传入中文数据导致乱码,因此在添加学生信息接口中,我特意说明让大家设置utf-8编码,这样添加的学生信息就不会出现乱码了。

6.文件上传(POST请求)

在上传文件接口中,需要注意的是这里的入参是file类型的,因此,我们需要准备一个待上传的文件。

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

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

最后,通过本项目,可以看到,Jmeter上手起来挺快的,即使不懂代码的同学学会Jmeter的基本操作后,也可以很快进行接口测试实践。

Jmeter接口测试实例-牛刀小试的更多相关文章

  1. Jmeter接口测试实例

    此文章作为工作中用到的jmeter接口测试相关内容简述,方便日后查阅参考,如有理解描述有误之处,欢迎指出. 首先Jmeter环境准备网上有很多教程,在此不多做赘述: 1.接口简述 接口可理解为从客户端 ...

  2. http接口测试——Jmeter接口测试实例讲解

    摘要: 最近做的项目需要测试很多接口,上网查一查,发现完整讲述接口测试的资料太少,所以最近自己做完这个项目,把测试的东西整理一下和大家分享一下,希望对看到的人有所帮助     一.测试需求描述 1. ...

  3. jmeter接口测试实例7-关联

    Jmeter实例7:关联(牛刀小试中登录.金币充值接口) 必须从网上下载这个插件放在lib的ext目录下才可以用,在登录接口添加此插件 Sign是变量名,其实就是下一步充值金币要取的值:路径是从哪里取 ...

  4. jmeter接口测试实例6-注册(参数化)

    Jmeter实例6:注册(参数化) 选中http协议,添加CSV Data set Config 准备参数中要使用到的值,存放到txt中,如果一个里面有多个参数,中间用,号分隔: 选中CSV元件,fi ...

  5. jmeter接口测试实例5-文件上传

    Jmeter实例5:文件上传 添加http协议.添加IP.路径.方法.选择files upload文件名称tab,输入绝对路径,参数名称,运行: 上传成功

  6. jmeter接口测试实例4-学生金币充值

    Jmeter实例4:学生金币充值 添加http协议—添加IP.路径.方法,添加cookie管理器,察看结果树如下图所示 输入管理员名称:niuhanyang,输入值,域,如下图所示: 输入必填参数,运 ...

  7. Jmeter接口测试实例3-登录

    Jmeter实例3:登录 添加http协议—添加IP.路径.方法,察看结果树,运行 登录成功

  8. Jmeter接口测试实例2-获取所有学生信息

    Jmeter实例2:获取所有学生信息 添加http协议—添加IP.路径.方法,添加信息头管理器,察看结果树,运行 如下图所示,响应结果中获取到所有学生信息

  9. jmeter接口测试实例1-添加学生信息

    jmeter实例1:添加学生信息 进入jmeter,添加线程组改名称为添加学生信息(为了好区分接口),添加http请求,输入IP,方法,路径,在body data中输入json串,同上面postman ...

随机推荐

  1. WPF事件(一)内置路由事件

    原文:WPF事件(一)内置路由事件 Windows是消息驱动的操作系统,运行其上的程序也遵照这个机制运行,随着面向对象开发平台日趋成熟,微软把消息机制封装成了更容易让人理解的事件模型,一个事件包含3个 ...

  2. Android 开发相关

    1.app下载更新 https://git.oschina.net/lwngreat/UpdateHelper

  3. Qt程序发行Linux版,软件打包知识(patchelf 工具修改依赖库,确认 qmake -v 是自己使用的Qt版本,否则用export PATH进行修改)good

    patchelf 工具可以修改已编译运行程序的依赖库位置和指定库链接器 patchelf --set-rpath patchelf --set-interpreter 通过这个工具 https://g ...

  4. ArcGIS for Desktop入门教程_第八章_Desktop学习资源 - ArcGIS知乎-新一代ArcGIS问答社区

    原文:ArcGIS for Desktop入门教程_第八章_Desktop学习资源 - ArcGIS知乎-新一代ArcGIS问答社区 1 学习资源 用户在学习和应用过程中,可以参考的资源如下: 1. ...

  5. SignalR的简单实现(一)

    原文:SignalR的简单实现(一) ASP.NET SignalR是ASP.NET开发人员的一个新库,它使您的应用程序添加实时Web功能变得非常简单.什么是"实时网络"功能?能够 ...

  6. Android零基础入门第49节:AdapterViewFlipper图片轮播

    原文:Android零基础入门第49节:AdapterViewFlipper图片轮播 上一期学习了ExpandableListView的使用,你已经掌握了吗?本期开始学习AdapterViewFilp ...

  7. 如何Update跨表修改数据

    大家都知道用Update修改单个表的使用方法,现在来看一下用update 跨表修改数据: 首先创建表 a 然后创建表b 现在要把表b的company  根据ID更新到表a 方法一: update a ...

  8. cmake常用工程示例大集合

    1 简单的可执行文件生成工程 1.1 源文件   main.cpp #include <stdio.h> int main(int argc, char *argv[]) { printf ...

  9. python-监控服务

    最近写了一个web测试程序,因为部署在其他地方,所以想弄个监控的进程去看服务是不是还在,要是不在好发邮件,就用python简单的写了一个. 想法是这样的,单独运行一个monitor的脚本,每隔一段时间 ...

  10. es6基本语法,vue基本语法

    一.es6基本语法 0.es6参考网站 http://es6.ruanyifeng.com/#README 1.let 和 const (1)const特点: 只在局部作用域起作用 不存在变量提升 不 ...