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 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> pytest参数化结合allure.title()生成自定义用例描述 -> 正文阅读

[开发测试]pytest参数化结合allure.title()生成自定义用例描述

参数化(parametrize)可以实现测试数据和测试脚本完全分离,便于测试的维护和扩展

如何在测试报告中展示参数化的用例:

  • pytest可以在参数化的时候加 ids 参数对每个用例说明使用场景
  • allure.title() 可以接收测试数据中的参数对每个用例说明使用场景,用例说明可以同测试维护在一起,数据可以一次性读取,更加方便
  • allure.dynamic.title() 可以在用例里面使用,作用同allure.title()

测试脚本

  • 新增测试文件:test_parametrize.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File  : test_parametrize.py
# @Author: xxxx xxxx
# @Date  : 2021/10/9 23:38
# @Desc  :

import pytest
import allure


def login(username, password):
    """登录功能"""
    print("输入账号:%s" % username)
    print("输入密码:%s" % password)
    # 返回
    return {"code": 0, "msg": "success!"}


# 测试数据
# 从excel 或者 mysql 中获取
test_data = [
    ({"username": "user1", "password": "123456"}, "success!", "输入正确账号,密码,登录成功"),
    ({"username": "user2", "password": "123456"}, "failed!", "输入错误账号,密码,登录失败"),
    ({"username": "user3", "password": "123456"}, "success!", "输入正确账号,密码,登录成功"),
]


@allure.story("登录用例")
@allure.title("{title}")
@pytest.mark.parametrize("test_input,expected,title",
                         test_data
                         )
def test_login(test_input, expected, title):
    """
     # 登录测试用例
     # 测试用例的参数 比待测试功能的参数 多一个{title}
     # 参数化时传 3个参数@pytest.mark.parametrize "test_input,expected,title"
     # @allure.title("{title}") 的参数写法 "{title}"
    """
    # 获取函数返回结果
    result = login(test_input["username"], test_input["password"])
    # 断言
    assert result["msg"] == expected


# @allure.story("登录用例")
# @pytest.mark.parametrize("test_input,expected,title",
#                          test_data
#                          )
# def test_login(test_input, expected, title):
#     """
#      # 登录测试用例
#      # 测试用例的参数 比待测试功能的参数 多一个{title}
#      # 参数化时传 3个参数@pytest.mark.parametrize "test_input,expected,title"
#      # allure.dynamic.title(title)  # 更符合平时使用习惯
#     """
#     # 获取函数返回结果
#     result = login(test_input["username"], test_input["password"])
#     # 断言
#     assert result["msg"] == expected
#     allure.dynamic.title(title)

运行用例

  • 在terminal通过如下命令运行用例:
$ pytest test_parametrize.py --alluredir ./report/allure_report  --clean-alluredir
$ allure serve ./report/allure_report

测试报告

在这里插入图片描述

参考文档:https://www.cnblogs.com/yoyoketang/p/12853605.html

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-10-12 23:46:32  更:2021-10-12 23:47:49 
 
开发: 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:36:05-

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