• 接口测试实战讲解


    本次实战,我是从网上找的接口测试项目,该项目提供了详细的接口文档,我们可以通过学习接口文档来设计测试用例,最后再使用Jmeter进行实战。总的来说,这个项目很适合用来练手,项目网址:https://www.bilibili.com/video/BV17T41117Li/

    所有设置如下:

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

    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字段,如下:

    获取学生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

    2023最新Jmeter接口测试从入门到精通(全套项目实战教程)

  • 相关阅读:
    跟着GPT学设计模式之桥接模式
    EPLAN小知识——如何在费斯托(FESTO)官网下载EPLAN部件
    Nginx部署前后端分离项目(Linux)
    LD链接脚本
    Gradle简单配置
    Linux系统的安装
    菜鸟踩坑之@PostMapping怎么接收String类型的参数
    集合(Set)和有序集合(ZSet)的基本使用方法详解【Redis】
    mysql源码学习
    新闻 | 虹科电子与rooom正式建立合作伙伴关系
  • 原文地址:https://blog.csdn.net/m0_68405758/article/details/133925237