接口自动化request + pytest

requests

requests定义

requests是一个很实用的Python HTTP客户端库,编写爬虫和测试服务器响应数据时经常会用到,Requests是Python语言的第三方的库,专门用于发送HTTP请求

requests响应

r.status_code 响应状态码
r.heards 响应头
r.cookies 响应cookies
r.text 响应文本
r. encoding 当前编码
r. content 以字节形式(二进制)返回

最常用的是根据响应状态码判断接口是否连通,经常用于做接口中断言判断

发送无参数的get请求

import requests
class Baidu():
    def methon(self):
        r = requests.get("http://apis.juhe.cn/mobile/get?phone=13611130750&type=&key=e051969849556bb1bc1e19c73c813d52")
        print(r)

baidu = Baidu()
baidu.methon()

在这里插入图片描述

发送有参数的get请求

import requests
class Baidu():
    def methon(self):
        ps = {"phone": 13611130750, "key": "e051969849556bb1bc1e19c73c813d52"}
        # 将参数传到ph里面
        ph = requests.get("http://apis.juhe.cn/mobile/get", params=ps)
        print(ph.text)
        # 获取状态码
        status = ph.status_code
        print("------------")
        print(status)
baidu = Baidu()
baidu.methon()

在这里插入图片描述

模块总览

dataDemo(存放数据)>> readDemo(读取数据)

useRequests(发送请求)>>testDemo(生成报告)

在这里插入图片描述

在这里插入图片描述

将读取的数据存放到列表中

# 接口
url,params,methon
http://japi.juhe.cn/qqevaluate/qq,{"qq":"2962863689","key":"9aaf2d20b591e6e94edf97c1c64d290e"},post
http://apis.juhe.cn/mobile/get,{"phone":"13611130750","key":"e051969849556bb1bc1e19c73c813d52"},get
import csv
class Resd_Csv():
    def resd_csv(self):
        item = []
        r = csv.reader(open("../dataDemo/testdemo.csv","r"))
        # 循环获取csv中的数值,并添加到item中
        for i in r:
            item.append(i)
        # 获取下标值为 1 的值和他后面的数据
        item = item[1:]
        return item

r = Resd_Csv()
a = r.resd_csv()
print(a)

在这里插入图片描述

requests请求接口返回状态码,并使用断言

# 接口
url,params,methon
http://japi.juhe.cn/qqevaluate/qq1324,{"qq":"2962863689","key":"9aaf2d20b591e6e94edf97c1c64d290e"},post
http://apis.juhe.cn/mobile/get,{"phone":"13611130750","key":"e051969849556bb1bc1e19c73c813d52"},get

from readDemo.resd_csv import Read_Csv
import requests

r = Read_Csv()
aa = r.read_csv()
# print(aa)

class RequestsClass():
    def requests_method(self):
        item = []
        for j in aa:
            if j[2] == "get":
                rr = requests.get(url=j[0], params=j[1])
                item.append(rr.status_code)
            else:
                rr = requests.post(url=j[0], data=j[1])
                item.append(rr.status_code)
        return item

r = RequestsClass()
ee = r.requests_method()
print(ee)

from useRequests.requestsuse import RequestsClass
import pytest
# 查看传过来的状态码是否正常
r = RequestsClass()
a = r.requests_method()
# print(a)
# 创建一个类,进行断言
class TestClaa():
    def test_one(self):
        # 循环取出数据并进行断言
        for i in  a:
            assert i == 200
if __name__ == '__main__':
    pytest.main(["test_one.py"])

在这里插入图片描述
在这里插入图片描述

Python请求库`requests`是一个非常流行的库,用于向HTTP服务器发送请求和处理响应。`pytest`则是一个用于编写自动化测试的框架,结合`requests`可以很方便地搭建一个Python接口自动化测试框架。 搭建Python接口自动化测试框架的步骤如下: 1. 安装`requests`和`pytest`库:在命令行中使用pip工具安装这两个库。例如,运行 `pip install requests pytest`。 2. 创建测试目录和文件:创建一个目录来保存测试用例和相关文件。可以将这个目录命名为“tests”。在此目录中创建一个Python文件,用于编写测试用例。 3. 编写测试用例:在测试文件中,使用`pytest`框架提供的装饰器`@pytest.mark`来标记测试用例。然后在测试用例中,使用`requests`库来发送请求,并对响应进行断言验证。 4. 运行测试:在命令行中进入测试文件所在的目录,运行`pytest`命令来运行测试用例。`pytest`会自动去发现并执行测试文件中以`test_`开头的函数。 5. 查看测试报告:`pytest`会输出详细的测试报告,包括每个测试用例的执行结果、断言失败的信息等。 为了让测试代码更加组织和可维护,可以考虑使用`pytest`提供的一些功能,如夹具(fixtures)和参数化(parametrization)。夹具可以在测试用例之前或之后执行一些前置或后置操作,例如设置和清理测试环境。参数化可以让一个测试用例根据不同的输入数据运行多次,减少重复的代码。 总结一下,使用`pytest`框架结合`requests`库可以很方便地搭建一个Python接口自动化测试框架。通过编写测试用例和使用`pytest`的一些功能,可以实现高效、可维护的接口自动化测试,并生成详细的测试报告。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值