测试人社区

[拉勾课]pytest 测试实战

参考链接

pytest 官方地址:https://docs.pytest.org/en/stable/

pytest

配置 Pycharm 的运行:

pytest 命名规则

  • 文件的名字要以test_开头
  • 类名要以Test开头 首字母大写, 方法名要以test_开头

pytest 参数化

  • 将变化的参数提取出来,以数据的形式传入到测试方法中
  • 参数化会为每一条测试用例生成一条数据,其中一条测试数据失败,不影响其它测试数据的测试结果。

setup ,teardown , setup_class ,teardown_class

  • 在每条测试用例执行之前,执行setup()

  • 在每条测试用例执行之后,执行teardown()

  • 在测试类的前执行setup_class()

  • 在整个测试类执行之后执行teardown_class()

allure

allure 安装

需要安装下面两个包:

  • allure
  • allure-pytest

执行命令:

  • pytest执行的时候要加上参数–alluredir 指定中间结果的目录
    pytest test_search.py --alluredir ./result --clean-alluredir
  • allure serve 解析 中间结果,并且启动一个web server ,打开测试结果html文件
  • allure generate 生成最终结果

抽奖

ERROR: file not found: pythoncode/test_calc.py
怎么我一直执行说找不到文件

检查你的当前目录下有没有这个文件哦

怎么看直播回放

请问robot framework还有学习价值吗?谢谢

我的图片加载不出来呢,文件路径写的是绝对路径。

请问 为什么我的视频到报告里变成了0秒,没法播放

我昨天也遇到你这个问题了呢。
你是window系统吧?

我是把图片路径的\全部修改成 双\或者修改成/
就可以了呢

或者你添加的图片的那段代码 方法是不是把alllure.attach.file()写成allure.attach()了 。

我昨天就是这个两个问题引起的,修改后就好了 ,你可以试试。

这个视频是你录制的还是已有的视频?

排查一下问题,以下几种情况:
1、去你放置视频的目录下看看,视频是否存在。
2、查看视频大小是否为 0KB
3、如果是你自己录制的视频,检查一下录制软件是否可用。

可以在路径的字符串前面加个 r r’path/to/your/file’, 否则在windows下反斜框有可能将某个字符转义,比如\r, \t 。

这种方法也可以。

可以学,不推荐,工作中用的比较少。原因参考这篇文章(思寒校长写的)。
https://ceshiren.com/t/topic/1083

拉勾上直接可以看回放的哦

谢谢集美!! 我路径是写的 双\,但是仍不显示图片;把方法改成alllure.attach.file()就可以了~感谢 :blush:

谢谢老师,路径前边加r 和 写双\ 都不行,把方法名由 allure.attach() 更改为 allure.attach.file() 就可了~

好吧,原来是api调错了, 图片和视频都需要使用api allure.attach.file()

请问老师,Unittest用的参数化库ddt,在Pytest中还支持吗?谢谢!

这个报错怎么办?

安装Pytest后,打开Python的模块文档:
22
pytest中的mark属性是:


按这个找到类MarkGenerator:
image
文档中并没有我们经常使用的方法skip、parametrize等。源代码和文档也是一致的:
33
但在Pycharm中点击@pytest.mark.skip方法名,跳转。却可以看到类MarkGenerator中有很多方法:


为什么二者会不一致呢?

安装pytest-parallel后,以多线程方式执行程序,报如下错误:



不知为何?系统是Windows