测试开发——pytest测试实战(一)预习贴

将录播看完

安装python 3.X

安装pychram


我在pytest.main()里无论是使用字符串的方式,还是list方式,写的命令均不执行。同样的命令,在终端里就能执行。


老师,这个__init__.py指的是conftest.py所在的包吗,还是指 ……
我下午特意验证了下,如果 conftest.py所在的当前目录里,如果没有__init__.py ,照样能执行,不报错。
所以我不太明白,这个__init__.py 指的是哪里的。

allure中在什么场景下会使用@allure.issue这个插件,它的具体作用是什么

yield后面的两个print()为什么不是在运行test_search2以后打印,而是在test_search3运行以后再打印

老师文件目录一般是怎那么划分的?通常分成哪几个?每个目录下都存放那些py文件啊?多人开发时最后如何将所有人脚本合并到一起运行的呢?confitest是一个共享数据的文件,那是每个人都把要共享的数据写到自己的confitest中,最后所有人合并时,在copy整理到一个最终的confitest文件中么?

会讲到 基于swagger自动生成基本测试case吗?

我理解的:
当scope 为module时,yield 相当于 teardown_module。也就是说 当当前的py文件的最后一个函数或方法执行结束后,就会去执行yield后面的代码。
并且是在当前py文件里 第一处调用(如图中的open()函数)的方法或函数执行之前,先去执行 被调用的函数(如图中的open()函数) yield前面的内容。

但是yield用法不是当再次调用时会从第一次停止的地方继续运行吗,当test_search2调用open函数的时候没有走yield吗,这个yield我是一直都不太懂,看了很多介绍和文档还是没理解透彻

我理解的: 这个yield 是和 scope 的范围有关系,并且还和 当前是方法 还是 函数 也有一定的关系

pytest.main() 方法里面需要传入字符串列表,新版本的字符串类型的参数已废弃。
运行的话,需要使用 python解释器来执行。

python 3.3版本以后不需要__init__.py文件也可以调用包下的模块,但是为了统一,建议加上这个文件,保持为空即可。

@allure.issue 关联bug链接
@allure.testcase 关联测试用例的地址

老师,这个的意思是对应用例已经有bug单存在了,然后才在这个用例代码中使用issue吗,

@pytest.fixture(scope=‘module’)
scope=‘module’ 作用域是 模块级别(也就是一个python文件),yield 前面的操作,相当于执行了setup ,yield 后面的操作相当于执行了teardown ,而整个方法的作用域是模块级别,也就是会在整个模块执行之前 执行yield 前面的操作,整个模块执行之后 ,执行yield 后的操作。

老师,yield的特性不是在下次调用它所在方法的时候会从上次暂停的地方开始执行吗,test_search2是没有调用open方法吗

一般
测试用例:test_cases
测试数据:test_data
公共类:common
测试报告:test_report
运行文件:run_tests.py

  1. 划分目录,项目级别划分,功能的类型划分,框架各个功能点的划分
  2. 脚本合并,如果合作的不同的功能点,冲突的可能性很小,如果合作的是同一个文件或者是同一个方法,就需要注意,最好是协商解决。
    git rebase
  3. conftest.py 内层包里的conftest.py 会覆盖外层的conftest.py

对的

整个作用域就是module ,跟写不写open 没有关系