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 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> python+selenium+pytest(中)自动化测试框架pytest的应用 -> 正文阅读

[开发测试]python+selenium+pytest(中)自动化测试框架pytest的应用

在(一)中,简单对selenium常用问题方法进行介绍,在二中详细介绍结合框架的使用

(一)pytest的介绍

基于python的框架常用的又unittest、pytest、rebotframework
unittest、pytest侧重于单元测试
rebotframework侧重于系统测试

pytest 可以用来做 系统测试 的自动化, 它的特点有

(1)用 Python 编写测试用例,简便易用

(2)可以用 文件系统目录层次 对应 手工测试用例 层次结构

(3)灵活的初始化清除 机制

(4)可以灵活挑选测试用例执行

(5)利用第三方插件,可以生成不错的报表

(二)安装

pytest安装

pip install pytest 

测试报表安装

pip install pytest-html

安装成功界面,输入pytest有应有的环境
在这里插入图片描述

(三)建立pytest基本用例

官方文档 给出了 pytest 寻找 测试项 的 具体规则:

(1)如果未指定命令行参数,则从 testpath(如果已配置)或当前目录开始收集。
如果命令行参数, 指定了 目录、文件名 或 node id 的任何组合,则按参数来找

(2)寻找过程会递归到目录中,除非它们匹配上 norecursedirs。

(3)在这些目录中,搜索由其测试包名称导入的 test_*.py 或 *_test.py 文件。

(4)从这些文件中,收集如下测试项:
test为前缀 的 函数
Test为前缀的 类 里面的 test为前缀的方法

所以建立测试文件test_mod.py,我们把测试用例存放在类中,类名必须以 Test 为前缀的类 ,用例对应的方法必须以 test 为前缀的方法,否则pytest识别不到,输入如下代码:

import pytest

class Test1:

    def test_01(self):
        print('\n用例C001001')
        assert 1 == 1

    def test_C001002(self):
        print('\n用例C001002')
        assert 2 == 2

    def test_C001003(self):
        print('\n用例C001003')
        assert 3 == 2

在terminal中进行一个pytest的简单测试
在这里插入图片描述
pytest中用例检查直接用python的assert断言,上述表明两个通过,一个不通过,并标明详细的位置
如果需要更加详细的信息,则测试类、测试函数加上-v;需要打印的信息则加上-s
所以可以

#指定目录运行
pytest test    或者多个目录			pytest  test   test1\test11
#指定模块执行
pytest test\test_mod.py
#指定类运行
pytest test\test_mod.py\Test1
#指定方法运行
pytest test\test_mod.py\Test1::test_01

运行这个模块pytest -sv test_mod.py()
在这里插入图片描述

还有一些比较常用的pytest参数比如-k模糊查询类名、函数名、模块名运行指定用例
比如pytest -k ‘Test1’ 执行类Test1

给某些方法或类加上标签
比如给测试用例1与测试用例2加上标签,引用装饰器 @pytest.mark.webtest
执行pytest -v -m webtest只执行标签的用例
在这里插入图片描述
(四)生成目录下所有测试文件的测试报告

将上述的test_mod.py文件放在新建test目录中,执行

pytest test --html=report.html --self-contained-html

在test目录中生成report.html测试报告,打开该html文件可以看到如下
在这里插入图片描述

(五)初始化清除
初始化与清除的执行顺序层级结构如下

————目录初始化

	————模块初始化
	
			————类初始化
			
					————方法初始化
				
					————方法清除
		
			————类清除
			
	————模块清除

————目录清除		

示例代码如下(初始化与清除函数名携带关键词setup,teardown):

def setup(self):
    print("模块初始化")


def teardown(self):
    print("模块完全清除")

class Test2:

	 # 类初始化,这里调用的是classmethod
    @classmethod
    def setup_class(cls):
        print("\n 初始化类")

    #类清除
    @classmethod
    # 所有用例执行结束时执行
    def teardown_class(cls):
        print("\n 类清除成功")
        
	#方法初始化
    def setup_method(self):
        print("\n  方法初始化 ")

	#方法清除
    def teardown_method(self):
        print('\n 方法清除')
        
    def test_01(self):
        print('\n用例C001001')
        assert 1 == 1

    def test_C001002(self):
        print('\n用例C001002')
        assert 2 == 2

    def test_C001003(self):
        print('\n用例C001003')
        assert 3 == 2

再新建一个目录初始化清除,在test文件下面新建conftest.py文件,文件名要固定conftest.py
import pytest

@pytest.fixture(scope=‘package’,autouse=True)
def st_emptyEnv():

print('初始化目录')

yield

print('清除目录')

层级结构如下,执行pytest test -sv
在这里插入图片描述
简单的介绍了pytest框架的基本使用,在python+selenium+pytest(下)中进行一次工作中的项目实战自动化测试

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

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