其他分享
首页 > 其他分享> > 测试框架pytest的使用,可集成AirtestIDE的测试代码

测试框架pytest的使用,可集成AirtestIDE的测试代码

作者:互联网

测试框架pytest的使用,可集成AirtestIDE的测试代码

一、pytest测试框架环境部署

使用测试框架的好处:

管理测试用例、提供断言方法、输出HTML测试报告。

 

1.1 pytest模板规范

  1. 测试文件以 test_开头(以_test结尾也可以)

  2. 测试类以Test开头,并且不能带有init方法

  3. 测试函数以test_开头

1.2 pytest的初识

下载

pip3 install pytest -i https://pypi.tuna.tsinghua.edu.cn/simple

导包

import pytest

运行pytest.main()

import pytest


class  TestPytestFirst(object):
    """docstring for  TestPytestFirst"""

    def test_01(self):
        print('这是第一条用例')
        assert 1 == 1

    def test_02(self):
        print('这是第二条用例')
        assert 1 =='1'

if __name__ == '__main__':
    pytest.main()

控制台没有打印print() 输出,如需显示请添加以下参数:

pytest.main(['-s','-v'])

如果希望运行指定的测试文件,可以把文件全名放到列表list里面:

pytest.main(['-s','-v','my_test.py'])

1.3 pytest的执行顺序

和unittest一样用setup()和teardown()

import pytest




class  TestPytestFirst(object):
    """docstring for  TestPytestFirst"""

    # 打开浏览器
    def setup_class(self):
        print("=====setup_class()执行=====")
    # 关闭浏览器
    def teardown_class(self):
        print("=====teardown_class()执行=====")


    def test_01(self):
        print('这是第一条用例')
        assert 1 == 1

    def test_02(self):
        print('这是第二条用例')
        assert 1 =='1'

    # 用例执行前的初始化
    def setup(self):
        print('这是在用例执行之前做的事')
    # 用例执行完的处理
    def teardown(self):
        print('这是在用例执行之后做的事')




if __name__ == '__main__':
    pytest.main(['-s','-v','myScripts_test.py'])

用例默认顺序是按照什么执行?

官方文档: https://pytest-ordering.readthedocs.io/en/develop/

注意:一旦设置了自定义的执行顺序,就必须得延伸@pytest.mark.run(order=1)里面的order字段

pip3 install pytest-ordering -i https://pypi.tuna.tsinghua.edu.cn/simple

应用方式:

  1. 第一个执行:@ pytest.mark.run(order=1)

  2. 第二个执行:@ pytest.mark.run(order=2)

  3. 倒数第二个执行:@ pytest.mark.run(order=-2)

  4. 最后一个执行:@ pytest.mark.run(order=-1)

代码:

import pytest


class  TestPytestFirst(object):
    """docstring for  TestPytestFirst"""

    # 打开浏览器
    def setup_class(self):
        print("=====setup_class()执行=====")
    # 关闭浏览器
    def teardown_class(self):
        print("=====teardown_class()执行=====")

    @pytest.mark.last
    def test_01(self):
        print('这是order=2用例')
        assert 1 == 1
    @pytest.mark.run(order=1) 
    def test_02(self):
        print('这是order=1用例')
        assert 1 =='1'

    # 用例执行前的初始化
    def setup(self):
        print('这是在用例执行之前做的事')
    # 用例执行完的处理
    def teardown(self):
        print('这是在用例执行之后做的事')




if __name__ == '__main__':
    pytest.main(['-s','-v','myScripts_test.py'])
View Code

1.4 pytest.ini配置规则

pytest.ini

[pytest]
python_files=test_*.py *_test.py
python_classes=Test*
python_functions=test_*
 

附录

python3.x下应该改为如下方式:

import importlib

importlib.reload(sys)

yaml模块的使用

import yaml

#打开要读取的文件 [{} ,{}]

stream = open('../data/login.yaml','r')

#读取文件数据

data = yaml.load(stream,yaml.FullLiader)

 

标签:AirtestIDE,test,self,print,用例,pytest,测试代码,def
来源: https://www.cnblogs.com/MarlonKang/p/15171220.html