zoukankan      html  css  js  c++  java
  • Python实现接口测试实例(一)

    适用人员:初学python的测试人员,若对抓包不太清楚的可先学习抓包的知识

    接口测试流程:发送请求-->返回响应-->结果判定-->生成报告

    案例:下面以【今目标】新建客户为例来进行接口测试

    1、发送请求

      1)抓包获取接口URL=https://mg.jingoal.com/mgw/customer/customerinfo?uid=9409095&cid=2706540&lang=zh_CN&client=mip&puse=mip&appver=8.7.2

      

      2)请求方式:post

      3)定制header

        通过抓包工具charles抓取header,如图所示,转换成dict格式

        

      4)请求数据:格式json 

       data=

        {
          "id": null,
          "cid": "2706540",
          "name": "客户测试003",
          "number": "13825698569",
          "url": "ukuaiqi.com",
          "address": "成都市人民北路128号",
          "phone": "18200389572",
          "subType": "25069511812070670152109290291",
          "fax": "1282562@qq.com",
          "zipCode": "",
          "remark": "",
          "owners": ["9409095"],
          "contacts": [],
          "sendCheck": ["msgAwork"],
          "tagCodes": [],
          "position": null
        }

      5)发起请求:

        result = requests.post(url, header, json=data)

    2、返回响应

      result = requests.post(url, header, json=data),result为响应结果,可转换成不同的格式

      1)result.status_code,返回状态码,如200,400,502

      2)result.text,获取接口返回值的文本格式

      3)result.json(),获取接口返回值的json格式

      4)result.headers,返回完整的请求头信息

      5)result.url,返回请求的完整URL

      .....等等

      下图为响应结果截图 

      {
        "code": 0,
        "ns": "jingoal.gateway.mobile.customer",
        "type": "customer/customerinfo",
        "value": {
          "id": "28070500562611879381101795270"
            }
      }

      

    3、结果判断

      结果判断主要有2部分组成,判断响应状态,判断响应body,判断的常用方法是使用断言

      如判断响应状态,请求状态result.status_code==200,msg为请求失败时打印的信息:

        self.assertEqual(result.status_code, 200, msg="请求出错")

      判断响应body里的code码,code=0代表新建客户成功:

        self.assertEqual(result.json()["code"], 0, msg="新建客户失败!")

    4、生成报告

      可用HTMLTestRuner生成报告:

      report_path= "E:\\python\\result.html"    # 报告路径

      fp = open(report_path, "wb")                  # 打开报告

      runner =HTMLTestRunner.HTMLTestRunner(stream=fp, title ="XXX测试报告", decription="测试执行结果明细")

      runner.run(all_case())                           # 执行所有用例

      fp.close()                                              # 关闭文件

     下图为笔者执行全部测试用例的截图

    结束:本文仅简述接口测试的过程,unittest测试组件测试在python--接口测试(二)中详述,若有疑问可直接留言,或将问题发送到邮箱1271782085@qq.com

  • 相关阅读:
    python2文件转换为exe可执行文件
    pycharm下 os.system os.popen执行命令返回有中文乱码
    python 虚拟环境
    git commit之后,想撤销commit
    Android Dialog使用举例
    Builder模式在Java中的应用(转)
    AngularJS promise()
    给你一个承诺
    AngularJs 用户登录验证模块(demo)参考总结
    推荐 15 个 Angular.js 应用扩展指令(参考应用)
  • 原文地址:https://www.cnblogs.com/Clairewang/p/8622280.html
Copyright © 2011-2022 走看看