当前位置:首页>python>Python应用|第一周接口测试

Python应用|第一周接口测试

  • 2026-09-02 19:05:07
Python应用|第一周接口测试

下面给你第1周每天对应的示例代码,直接复制就能跑,边看边改就能学会。


Day1:requests 发送 GET / POST 请求

import requests# 1. GET 请求deftest_get():    url = "https://httpbin.org/get"    res = requests.get(url, params={"name": "test", "age": 20})    print("状态码:", res.status_code)    print("返回数据:", res.json())# 2. POST 请求(表单/JSON)deftest_post():    url = "https://httpbin.org/post"    data = {"username": "admin", "password": "123456"}    res = requests.post(url, json=data)    print(res.json())if __name__ == "__main__":    test_get()    test_post()

Day2:封装请求 + 基础断言

import requestsclassApiClient:def__init__(self, base_url="https://httpbin.org"):        self.base_url = base_urldefget(self, path, params=None):        url = self.base_url + path        res = requests.get(url, params=params, timeout=5)return resdefpost(self, path, json=None):        url = self.base_url + path        res = requests.post(url, json=json, timeout=5)return res# 测试+断言if __name__ == "__main__":    api = ApiClient()    res = api.get("/get")# 断言assert res.status_code == 200, "请求失败"assert"origin"in res.json(), "返回结构异常"    print("用例通过")

Day3:pytest 基础用例

新建文件 test_demo.py

import requestsdeftest_get_200():    res = requests.get("https://httpbin.org/get")assert res.status_code == 200deftest_post_json():    res = requests.post("https://httpbin.org/post", json={"a":1})assert res.json()["json"]["a"] == 1

运行:

pytest test_demo.py -v

Day4:从 Excel 读取测试用例

import pandas as pd# Excel 结构:url, method, params, expect_codedefread_test_cases(file="cases.xlsx"):    df = pd.read_excel(file)return df.to_dict("records")if __name__ == "__main__":    cases = read_test_cases()for case in cases:        print(case["url"], case["method"], case["expect_code"])

Day5:pytest + 测试报告

pip install pytest-html

运行并生成报告:

pytest test_demo.py --html=report.html

Day6:简易接口自动化框架结构

project/  config.py       # 域名、超时  api_client.py   # 请求封装  test_cases/     # pytest 用例  cases.xlsx      # 用例表  run.py          # 一键执行

run.py

import pytestpytest.main(["test_cases/", "-v", "--html=report.html"])

Day7:异常处理 + 日志

import requestsimport logginglogging.basicConfig(level=logging.INFO)defsafe_get(url):try:        res = requests.get(url, timeout=3)        logging.info(f"{url}{res.status_code}")return resexcept Exception as e:        logging.error(f"请求失败: {e}")returnNonesafe_get("https://httpbin.org/get")

你明天直接跟着 Day1~Day7 敲一遍,基本接口自动化就入门了。

最新文章

随机文章