IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 接口测试API 用例、数据、接口分离 -> 正文阅读

[开发测试]接口测试API 用例、数据、接口分离

目的:完成接口自动化测试,其中最重要的就是用例、数据、接口的分离

现在模拟一个登录接口的测试,

原始请求:

import pytest,json,requests
def test_login():
    url = "https://blog.csdn.net/"
    payload = json.dumps({
        "tel": "123456",
        "password": "123456"
    })
    headers = {
        'Content-Type': 'application/json'
    }
    response = requests.request(method="POST", url=url,headers=headers ,data=payload)

    print(response.json)

问题:

针对该接口的多个用例,就得写很多次,代码重复率太高了

方法:

将用例与接口、数据分离

接口文件:get_token.py

import json,requests

# api中每个方法表示一个接口的请求方法

class GET_Token():
    def get_login(self):
        url = "https://blog.csdn.net/"
        payload = json.dumps({
            "tel": "123456",
            "password": "123456"
        })
        headers = {
            'Content-Type': 'application/json'
        }
        response = requests.request("POST", url, headers=headers, data=payload)

        return response.json()

if __name__ == '__main__':
    t = GET_Token()
    t.get_login()

用例文件:test_demo.py

# testcase 是测试用例,一个method对应一个case,用例与接口分离
import pytest
from get_token import GET_Token

class Test_token():
    def setup(self):
        self.gettoken = GET_Token()

    # 判断是否登录成功,接口返回的响应值做对比
    def test_token(self):
        print(self.gettoken.get_login())
        assert  self.gettoken.get_login()['code'] == 0

现在的接口文件还是比较混乱,可以将数据格式整理一下,采用统一格式,比如JSON

整理后的get_token.py

import json,requests

# api中每个方法表示一个接口的请求方法

class GET_Token():

    def get_login(self):
        # 把请求信息转换成一个规范的字典结构体
        req = {
            "method": "POST",
            "url": "https://blog.csdn.net/",
            "headers": {
                'Content-Type': 'application/json'
            },
            "data": json.dumps({
                "tel": "1234456",
                "password": "1234456"
            })
        }
        # 拆包
        rs = requests.request(**req)
        print(rs.text)
        return rs

if __name__ == '__main__':
    t = GET_Token()
    t.get_login()

现在用例与接口、数据成功分离了,用例或者接口有变化直接去修改对应的文件即可,一个用例针对多条数据,直接准备多条数据替换req即可(放在数据文件中去读取,遍历)

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-02-14 21:28:40  更:2022-02-14 21:30:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 2:56:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码