【拉勾三期】python pytest 测试实战1

标题

python pytest 测试实战(一)

课程价值

  • 理解 Pytest 框架结构
  • 学会运行及常用的运行参数
  • 掌握参数化与数据驱动
  • 了解 Pytest 配置

大纲

  • Pytest 框架结构
  • 运行及运行参数
  • 参数化与数据驱动
  • Pytest 配置

时长

90分钟

PPT

https://pdf.ceshiren.com/lg3/python-Pytest测试实战1

脚本编写

应用

@pytest.mark.add
    @pytest.mark.parametrize('a,b,expect', [
        (1, 1, 2),
        (100, 200, 300),
        (0, 10, 10),
        (-1, -2, -3)
    ], ids=['整数',  '大数', '为零', '小数'])
    def test_add(self, a, b, expect):
        '''
        测试相加
        '''
        print("测试相加")
        # calc = Calculator()
        result = self.calc.add(a, b)
        assert expect == result

创建conftest.py 文件,加入如下代码,修改测试结果的编码格式:

def pytest_collection_modifyitems(
        session: "Session", config: "Config", items: List["Item"]
) -> None:
    for item in items:
        item.name = item.name.encode('utf-8').decode('unicode-escape')
        item._nodeid = item.nodeid.encode('utf-8').decode('unicode-escape')

参考代码

https://github.com/ceshiren/HogwartsLG3

作业

  • 课后作业
    • 1、补全计算器(加法 除法)的测试用例
    • 2、使用参数化完成测试用例的自动生成
    • 3、在调用测试方法之前打印【开始计算】,在调用测试方法之后打印【计算结束】
  • 注意:
    • 使用等价类,边界值,因果图等设计测试用例
    • 测试用例中添加断言,验证结果
    • 灵活使用 setup(), teardown() , setup_class(), teardown_class()

课后反馈

https://github.com/JuliaZxr/hogwarts_lg3_Yuki.git

作业完成的很好,参数化和setup,teardown理解的很好。

待改进:
1、最好把测试数据存放到数据文件中管理
2、异常的用例可以单独分离出去,如果异常不处理的话,就会抛异常, 比如除数为0的情况,这种情况应该是在预期之内的,可以使用异常捕获机制来判断。这种报错才是正常的。

https://github.com/xiaocaiji945/hogwarts_lyd.git

https://github.com/creamk87/test_develop

test_one

https://github.com/whitemie/mm/tree/master/pytest_test/Homework

https://github.com/sunyn218/hogwarts.git
script3中是本次作业

在readme当中有作业路径说明
计算器代码:pytest_practice/pythoncode/calculator.py
数据驱动文件:pytest_practice/testing/datas/calculator_datas.yml
测试代码:pytest_practice/testing/test_calculator.py
https://github.com/liangjie2825/hogwarts.git

https://github.com/realtalk1007/hogwarts

https://github.com/shifangxue/Hogwarts_LG3

https://github.com/len-zhang/Hogwarts_pytest_zuoye.git

https://github.com/shadingyu96/Shadingyu.git

老师,这是本次的作业
https://github.com/endeavor-hxs/test_prac

王瑀-2-深圳
pytest-作业1

https://github.com/qblslion/qccatni/tree/master/python_practice/pytest_learning

https://github.com/z1069867141/hogwarts_lg

https://github.com/Zhaohb1526/ZHB_python

已修改:
1、测试数据存放数据文件
2、分隔测试正确、错误用例
3、预期内的异常用例用异常捕获机制判断
4、生成报告,添加指定feature、story

https://github.com/JuliaZxr/hogwarts_lg3_Yuki.git

作业完成的思路不错。
待改进
1、下图的teardown_class 写的不对,
image
2、数据最好存储在数据文件中。便于管理