Restful API自动化测试:python+requests+pytest+pytest-html(超详细)

本文详细介绍了使用Python的requests库和pytest框架进行Restful API自动化测试的过程,包括安装环境、编写测试用例、处理不同类型的接口(如Query参数、Path参数、POST接口等)、使用pytest-mark划分测试集以及通过pytest-html生成测试报告。
摘要由CSDN通过智能技术生成

引言

最近刚学完python,想着怎么练一下手,就选择了写api自动化测试。写api自动化测试前需要考虑的内容有一下几点:

  1. 使用什么编程语言
  2. 使用什么api测试框架/工具
  3. testRunner用什么
  4. 测试用例是否可以灵活组织、运行
  5. 测试结果如何展示

工具介绍

鉴于以上几点考虑,选择了Python+Requests+Pytest+Pytest-html,先介绍一下这些工具,python就不用介绍了。

Requests

requests是python的一个第三方库,用于发送和处理http请求,其语法和操作都十分简单,官方文档也很详细,生态也比较完整,很多问题在网上都可以搜索到解决办法。

Pytest

Pytest是python的一个第三方库,需要单独下载安装。那么有人肯定会或为什么不直接用python内置的unittest库呢?可以参考unittest和pytest的区别

Pytest-html

Pytest-html是一个专门用于pytest生成html测试报告的插件,该插件很轻量级,报告展示也清晰易懂。

前期准备

安装python

python官网写得很详细,就不赘述了。

mock api

为了方便测试各种类型的接口,这里使用wiremock写了一些mock api,之后的例子全都基于这些mock api。可以直接下载源码使用:https://github.com/qycai/wireMock.git。下载之后直接运行App.java即启动了mockServer,可以使用postman测试一下,如下图:
在这里插入图片描述
接口返回200说明mockServer启动成功。

测试用例编写

第一个简单的接口测试

安装requests&pytest

pip install requests
pip install pytest

编写测试

新建python文件test_get_user_details.py, 内容实现如下:

import requests

base_url = "http://localhost:9090"

#class名需要以Test开头
class TestGetUserDetails:
    #测试名需要以test开头
    def test_get_user_details(self):
        api_path = "/api/getUserDetails"
        res = requests.get(url=base_url + api_path)
        response = res.json()
        status_code = res.status_code

        assert status_code == 200
        assert response["name"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值