文章目录

  • pytest简介
    • pytest和unittest区别
    • pytest使用自带的python-html 生成测试报告
  • 由于自带生成测试报告的东西不是界面过于简单和不太美观可以使用allure
    • 使用之前得要allure的环境变量(选择allure-2.13.2\bin)python需下载allure_pytest
    • Allure常用的几个特性
  • 读取文件(和unittest是一样的,拿到数据后就可以进行操作)
    • 读取xml文件
    • 读取csv文件

pytest简介

pytest命名规则
使用pytest之前需要安装一下pytest : pip install pytest

类名必须以Test开头,必须是大写开头,也可以_test()结尾,类中的方法也必须以test开头,执行时值匹配以app开头的类和方法

pytest和unittest区别

共同点:
他们都有共同的方法setup(), teardown(), setupclass(), teardownclass()
执行顺序 setupclass() -> setup() ->teardown() -> teardownclass()

区别:

import pytest
class TestClass:def test01(self):pass

pytest使用自带的python-html 生成测试报告

生成测试报告之前需要安装pytest-html: pip install pytest-html

import pytestclass TestClass():def setUp(self):print('setUp')def test01(self):print('test01')@pytest.mark.skip() # 跳过该用例(函数)def test02(self):print('test02')def tearDown(self):print('tearDown')if __name__ == '__main__':# 运行指定模块下,运行所有test开头的类和测试用例# -x出现一条测试用例失败就退出测试# -s:显示print内容pytest.main(['--html=./huuu_test/report.html','ohh.py','-s'])

结果:



补充
. 点号,表示用例通过
F 表示失败 Failure
E 表示用例中存在异常 Error

由于自带生成测试报告的东西不是界面过于简单和不太美观可以使用allure

allure是一款轻量级并且非常灵活的开源测试报告框架。 它支持绝大多数测试框架, 例如TestNG、Pytest、JUint等。它简单易用,易于集成。

使用之前得要allure的环境变量(选择allure-2.13.2\bin)python需下载allure_pytest

pip install allure_pytest
使用前要下载的文件
链接:https://pan.baidu.com/s/1ndOyEHi_TQPQld8YLZgsjw
提取码:88ff

出现这个情况就是配置成功

Allure常用的几个特性

@allure.feature # 用于描述被测试产品需求
@allure.story # 用于描述feature的用户场景,即测试需求
with allure.step(): # 用于描述测试步骤,将会输出到报告中
allure.attach # 用于向测试报告中输入一些附加的信息,通常是一些

demo

import os
import pytest
import allureclass TestClass005():@allure.feature("登录")  # 用于定义被测试的功能,被测产品的需求点@allure.story("汽车系统")  # 用于定义被测功能的用户场景,即子功能点def test_login(self):assert 1 == 1@allure.feature("汽车")  # 用于定义被测试的功能,被测产品的需求点@allure.story("买入汽车")  # 用于定义被测功能的用户场景,即子功能点def test_cat(self):with allure.step("查看红旗系列车信息"):allure.attach('H8', '红旗')allure.attach('带话筒', '红旗')with allure.step("查看大众系列车信息"):allure.attach("带字母", '大众')allure.attach("w9", '大众', )if __name__ == '__main__':pytest.main(['--alluredir', 'report/result', 'huuu_test.py'])  # 生成json类型的测试报告split = 'allure ' + 'generate ' + './report/result ' + '-o ' + './report/html ' + '--clean'  # 将测试报告转为html格式os.system(split)  # system函数可以将字符串转化成命令在服务器上运行

读取文件(和unittest是一样的,拿到数据后就可以进行操作)

读取xml文件

class Readxml():def read_xml(self, filename, onename, twoname):root = minidom.parse(filename)firstnode = root.getElementsByTagName(onename)[0]secondnode = firstnode.getElementsByTagName(twoname)[0].firstChild.datareturn secondnoder = Readxml()
a = r.read_xml('../data/add.xml', 'k1', 'k2')
b = r.read_xml('../data/add.xml', 'k1', 'k3')
c = r.read_xml('../data/add.xml', 'k1', 'k4')
print(1,2,3)

读取csv文件

csv文件数据

1,3,4
3,4,7
import pytest
import csv  # 导入csv模块class ReadCsv():def read_csv(self, path):item = []  # 定义一个空列表c = csv.reader(open(path, "r"))  # 得到csv文件对象for csv_i in c:item.append(csv_i)  # 将获取的数据添加到列表中return itempath = '../data/add.csv'
r = ReadCsv()
lists = r.read_csv(path)class TestClass():def setUp(self):print('setUp')def test01(self):su = 0for i in lists:su = int(i[0]) + int(i[1])num = int(i[2])assert num == su# @pytest.mark.skip()  # 跳过该用例(函数)def test02(self):num = int(lists[1][0]) + int(lists[1][1])su = lists[1][2]assert num == int(su)def tearDown(self):print('tearDown')if __name__ == '__main__':# 运行指定模块下,运行所有test开头的类和测试用例pytest.main(['--html=./huuu_test/report.html', 'huuu_test.py', '-s'])

练习题

import pytest
import allure
import os
import csv  # 导入csv模块
from demo.demo import CateClassclass ReadCsv():def read_csv(self, path):item = []  # 定义一个空列表c = csv.reader(open(path, "r"))  # 得到csv文件对象for csv_i in c:item.append(csv_i)  # 将获取的数据添加到列表中return itempath = '../data/add.csv'
rc = ReadCsv()
su = rc.read_csv(path)
list01 = su[0]
list02 = su[1]
c = CateClass()class TestClass():@allure.feature('加法')@allure.story('实际结果')def test_add(self):with allure.step('加法'):su = c.add(int(list01[0]), int(list01[1]))assert int(list01[2]) == su@allure.feature('减法')@allure.story('实际结果')def test_reduct(self):with allure.step('减法'):su = c.add(int(list02[0]), int(list02[1]))assert su == int(list02[2])if __name__ == '__main__':pytest.main(['--alluredir', 'report/result', 'huuu_test.py'])  # 生成json类型的测试报告split = 'allure ' + 'generate ' + './report/result ' + '-o ' + './report/html ' + '--clean'  # 将测试报告转为html格式os.system(split)  # system函数可以将字符串转化成命令在服务器上运行

pytest和allure生成测试报告相关推荐

  1. Pytest 结合 Allure 生成测试报告

    目录 安装插件 查看 Allure 版本 标记用法 指定运行某个story或者feature案例 安装插件 pip install allure-pytest 查看 Allure 版本 allure ...

  2. Pytest测试框架(五):pytest + allure生成测试报告

    系列文章目录 Pytest测试框架(一):pytest安装及用例执行 Pytest测试框架(二):pytest 的setup/teardown方法 Pytest测试框架(三):pytest fixtu ...

  3. Allure生成测试报告

    Allure是一个轻量级,灵活的,支持多语言的测试报告工具 多平台的,奢华的测试报告框架 可以为dev/qa提供详尽的测试报告,测试步骤,log 也可以为管理层提供high level的统计报告 ja ...

  4. allure生成测试报告时乱码,allure‘ �����ڲ����ⲿ���Ҳ���ǿ����еij��� ���������ļ���

    在测试用例运行完成,allure生成测试报告时乱码,如下:allure' �����ڲ����ⲿ���Ҳ���ǿ����еij��� ���������ļ��� 解决方法: 在系统环境变量path中添 ...

  5. python怎么输出图像测试_【Python】使用Pytest集成Allure生成漂亮的图形测试报告

    前言 大概两个月前写过一篇<[测试设计]使用jenkins 插件Allure生成漂亮的自动化测试报告>的博客,但是其实Allure首先是一个可以独立运行的测试报告生成框架,然后才有了Jen ...

  6. linux环境 jenkins +allure生成测试报告

    前提条件:linux环境已安装GIT. 安装GIT的步骤: centos会自带GIT 查看GIT的版本命令:git --version git安装后,需要设置环境变量:vim /etc/profile ...

  7. TestNG+Allure生成测试报告

    不要用allure 2.13.10 不要用allure 2.13.10 不要用allure 2.13.10 生成的报告是空白页 1.allure依赖配置 查看allure官网显示配置如下 <pr ...

  8. 生成html_用 Pytest+Allure 生成漂亮的 HTML 图形化测试报告

    对于软件测试来说,测试报告是非常重要的工作产出.一个漂亮.清晰.格式规范的测试报告,能够减少开发人员和测试人员的沟通成本. 本篇文章将介绍如何使用开源的测试报告生成框架 Allure 生成规范.格式统 ...

  9. html兴趣测试生成图表源码,用 Pytest+Allure 生成漂亮的 HTML 图形化测试报告

    原标题:用 Pytest+Allure 生成漂亮的 HTML 图形化测试报告 对于软件测试来说,测试报告是非常重要的工作产出.一个漂亮.清晰.格式规范的测试报告,能够减少开发人员和测试人员的沟通成本. ...

最新文章

  1. 快速理解 session/token/cookie 认证方式
  2. python发明者叫什么-近 50 年来最具影响力的 10 种编程语言,都是谁发明的?
  3. 利用向量叉积求三角形的面积(+STL:nth_element求第K大的数)
  4. 浏览器渲染机制面试_【前端面试必考题】页面渲染机制(一)
  5. 家庭自建服务器风险,服务器虚拟化可能面临的五个风险
  6. P4692 [Ynoi2016]谁的梦
  7. Win7下Tomcat7和Apache2.2集成
  8. Java TreeMap排序
  9. springboot毕设项目自驾旅游网站的设计与实现gah85(java+VUE+Mybatis+Maven+Mysql)
  10. 场内场外交易成本_场内基金与场外基金交易手续费是多少?怎么算?
  11. #pragma comment(lib 的用法
  12. 58全站用户行为数据仓库建设及实践
  13. win7安装ubuntu18.04双系统
  14. 江苏计算机二级报名一年几次,江苏计算机二级每年考几次
  15. cut and choose
  16. 【CH376】关于CH376的一些使用总结
  17. 如何查找sci期刊的历年影响因子
  18. PDF能编辑吗,怎样去掉PDF上的水印
  19. 防火墙——iptables防火墙
  20. 三种爱心代码html(文本文档即可实现)

热门文章

  1. h5跳转app指定页面及各种坑的总结
  2. 兼容性向前还是向后_向后兼容性与向前兼容性
  3. Android:ping
  4. 北京华为HCIE网络工程师快速完成设备流量控制和风暴控制-ielab网络实验室
  5. PaddleOCR——训练总结
  6. 柔性电子:动态识别物理信号的柔性聚合物传感器
  7. apache poi-检测到Zip Bomb解决方案
  8. 【山大智云开发日志】项目安装与部署
  9. OC 07 设计模式
  10. RocketMQ下载安装及基本使用