使用postman进行后端API的测试

测试简介

测试对象是服务器后端,采用白盒测试,以达到高代码覆盖率。

测试环境与工具

nodejs+postman

测试方式

  • 单元测试:针对各个用例的源代码,编写测试用例,分别在测试路径和生产环境路径下进行较为简略和较为详细的测试。
  • 压力测试:针对每个测试单元进行短期内超量请求的测试,以探测系统的漏洞和极限。

测试流程

  • 在Body中确定发送请求的字段,并将其值修改为变量的形式

在这里插入图片描述

  • 在Pre-request Script中,对变量进行赋值

在这里插入图片描述

  • 在Tests中,编写测试条件

在这里插入图片描述

  • 在csv文件中,准备测试样例

在这里插入图片描述

  • 点击run,选择外部数据文件和循环次数,开始测试。

测试用例(以用户注册为例)

生产环境路径
用户相关

1.用户注册

  • id格式检测

    • 测试样例

      uid,uname,uemail,upassword,uphone,ustatus
      "1111111","hhh","222@22.com","123456",11111111111,"student"
      "1111a11","hhh","222@22.com","123456",11111111111,"student"
      "aa1","hhh","222@22.com","123456",11111111111,"student"
      "aaaaaaaaaaa1","hhh","222@22.com","123456",11111111111,"student"
      
    • 检测条件

    pm.test("id格式错误", function () {
         var jsonData = JSON.parse(responseBody);
         console.log(responseBody)
         pm.expect(jsonData.msg).to.eql("The id format is incorrect(6-8 letter or digit, begin with letter)");
     });
    
    • 测试结果

    在这里插入图片描述

    • 测试总结

      测试内容通过(Y/N)
      id必须包含字母Y
      id必须以字母开头Y
      id不得小于6位Y
      id不得大于8位Y
    • 测试说明

      一切正常。

  • 电话格式检测

    • 测试样例

      uid,uname,uemail,upassword,uphone,ustatus
      "aaaaaa1","hhh","222@22.com","123456",1111111a111,"student"
      "aaaaaa1","hhh","222@22.com","123456",01111111111,"student"
      "aaaaaa1","hhh","222@22.com","123456",1111111111,"student"
      "aaaaaa1","hhh","222@22.com","123456",111111111111,"student"
      
    • 检测条件

      pm.test("电话格式错误", function () {
          var jsonData = JSON.parse(responseBody);
          console.log(responseBody)
          pm.expect(jsonData.msg).to.eql("The phone format is incorrect(11 digit number, begin with ~0");
      });
      
    • 测试结果

      在这里插入图片描述

    • 测试总结

      测试内容通过(Y/N)
      电话不能包含字母Y
      电话必须以0开头Y
      电话不得小于11位Y
      电话不得大于11位Y
    • 测试说明

      一切正常。

  • 邮箱格式检测

    • 测试样例

      uid,uname,uemail,upassword,uphone,ustatus
      "aaaaaa1","hhh","22222.com","123456",11111111111,"student"
      "aaaaaa1","hhh","222@22com","123456",11111111111,"student"
      "aaaaaa1","hhh","@22.com","123456",11111111111,"student"
      "aaaaaa1","hhh","222@22.","123456",11111111111,"student"
      "aaaaaa1","hhh","222@.com","123456",11111111111,"student"
      
    • 检测条件

      pm.test("邮箱格式错误", function () {
          var jsonData = JSON.parse(responseBody);
          console.log(responseBody)
          pm.expect(jsonData.msg).to.eql('The email format is incorrect(XXX@XXX.XXX)');
      });
      
    • 测试结果

      在这里插入图片描述

    • 测试总结

      测试内容通过(Y/N)
      邮箱必须包含@Y
      邮箱必须包含.Y
      邮箱@之前要有东西Y
      邮箱.之后要有东西Y
      邮箱.和@之间要有东西Y
    • 测试说明

      一切正常。

  • 密码格式检测

    • 测试样例

      uid,uname,uemail,upassword,uphone,ustatus
      "aaaaaa1","hhh","222@22.com","123",11111111111,"student"
      "aaaaaa1","hhh","222@22.com","123456123456123",11111111111,"student"
      
    • 检测条件

      发现写了密码的判断函数,但是没有在路由中进行判断,之后对其进行补充并测试。

      if(!validator.checkPhone(req.body.password)) {
              utils.sendError(res, 400, "The password format is incorrect(6~12 digit number)");
              return;
          }
      
      pm.test("密码格式错误", function () {
          var jsonData = JSON.parse(responseBody);
          console.log(responseBody)
          pm.expect(jsonData.msg).to.eql("The password format is incorrect(6~12 digit number)");
      });
      
    • 测试结果

      在这里插入图片描述

    • 测试总结

      测试内容通过(Y/N)
      密码不得小于6位Y
      密码不得大于12位Y
    • 测试说明

      修改之后一切正常。

  • 重复输入检测

    • 测试样例

      数据库中已存在的数据:

      uid,uname,uemail,upassword,uphone,ustatus
      "test1","hhh","22222.com","123456","11111111111","student"
      "aaaaaa1","hhh","12345678@qq.com","123456","11111111111","student"
      "aaaaaa1","hhh","222@22.com","123456","12345678910","student"
      
    • 检测条件

      pm.test("插入失败", function () {
          pm.expect(pm.response.code).to.be.oneOf([400]);
      });
      
    • 测试结果

      在这里插入图片描述

    • 测试总结

      测试内容通过(Y/N)
      id不可重复Y
      电话不可重复Y
      邮箱不可重复Y
    • 测试说明

      一切正常。

  • 压力测试

    • 测试条件

      测试三百次

      pm.test("插入失败", function () {
          pm.expect(pm.response.code).to.be.oneOf([400]);
      });
      pm.test("响应时间小于 200ms", function () {
          pm.expect(pm.response.responseTime).to.be.below(200);
      });
      
    • 测试结果

      在这里插入图片描述

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羊城迷鹿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值