我们在做接口测试的时候,接口的本质是发送请求给服务器,服务器获取到请求,再将结果返回回来,我们对返回的结果进行断言,符合预期结果,用例通过,不符合预期结果,用例失败。
现在使用Python来做接口自动化,

  1. 需要模拟发送请求
  2. 需要对用例进行管理。

我们会使用到第三方的包来做上面的事情

  1. requests 库 主要用来发送请求,以及获取服务器返回结果。
  2. pytest 库 用来管理接口测试用例。

配置环境

安装依赖包

需要对requests, pytest 进行安装。
安装方式有两种。

方式一:使用pycharm进行安装

在项目中打开 【File】—【Settings】
image.png
在项目设置面板中 找到 python解释器的配置面板
image.png
点击【+】 弹出对话框,在对话框中搜索要安装的包。
image.png
安装成功之后,可以看到对应的提示。
image.png
用此方法安装 pytest
image.png
安装完成之后,关闭对话框
image.png
看到项目中有 就可以了。
image.png

方式二:命令行pip命令安装

打开项目中的命令行【终端】工具。
image.png
执行命令

  1. pip install pytest
  2. pip install requests

image.png

解决安装速度慢,或者是安装失败问题

默认安装是从国外的服务器上下载进行安装的。所以如果网络比较差,下载会失败, 或者压根就不能下载。
解决办法:使用国内下载镜像。
这里使用清华大学软件镜像站。
打开命令行工具,执行如下

  1. pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

image.png
更改成功之后,重新打开pycharm 进行下载即可。


pycharm 终端报错

如果打开终端 提示
original_ff8bdbd5d2ef3d3d866c2b8964703b6b.png
解决办法:

  1. 用管理员身份运行 powershell

image.png
在powershell 中执行

Set-ExecutionPolicy RemoteSigned

执行成功之后选择 A
image.png
运行即可,重新打开 pycharm 即可。

第一个请求

编写注册请求。

# 导入 requests 模块
import requests

# 接口的文档地址:http://49.233.108.117:28019/swagger-ui.html#/


def test_regiseter():
    # 定义注册用户的地址
    url = "http://49.233.108.117:28019/api/v1/user/register"
    # 定义请求数据
    bodydata= {
      "loginName": "13212312312",
      "password": "123456"
    }
    # 发送请求  url= 表示请求地址, json= 请求数据为json格式
    r = requests.post(url=url,json=bodydata)
    # r 是整个服务器返回的结果
    print("状态码:", r.status_code)
    # 服务器返回结果
    print("结果:", r.json())

requests 为发送请求的库

  • requests.post 发送post请求
    • url 请求地址
    • json 请求数据格式为 json
  • r 服务器的返回结果
    • r.status_code http请求状态码 200,300,400,500 这些。
    • r.json() 服务器返回结果。

      运行

      因为我们使用pytest 来管理单元测试用例。
      pytest 会自动将 test_ 开头的py 文件 和 函数 作为自动化用例。
      可以直接在 pycharm中点击运行 按钮执行
      image.png
      可以在下面看到执行结果。
      image.png

可能的问题

image.png
写完代码之后, pycharm 没有自动识别测试用例。

配置pycharm 使用pytest运行用例

  1. 打开【File】—【Settings】image.png
  2. 找到 Toolsimage.png
  3. 在Tools 中找到 集成工具, 测试 选择使用 pytest。

image.png
应用并保存,之后再回到代码中,可以看到已经成功识别为测试用例。
image.png