pytest入门 ----- 测试用例前后置,固件

1、前后置

所谓前后置,就类似unittest框架中的setupteardown——执行用例前打开浏览器(前置),执行结束关闭浏览器(后置)。例如:

上面代码打印的部分就是setupsetup_classteardownteardown_class每个方法的说明
可是如果还有另一个文件,也需要这些操作【比如ui自动化每个用例都要打开浏览器执行】我们就需要对这几个公用的方法进行一下封装了。注:公用的库,习惯上都会定义为common

我们新建一个名为commonpackage,然后在里面创建common_util文件,新建类CommonUtil把公用方法剪切到这个类里面

然后其他类只需要继承这个类即可【python基础知识】

以上就是我们学unittest时的思路。但是现在如果有新需求:只有一个用例需要前置条件,其余的都不需要。那这个时候该怎么办呢?似乎这种继承的方法就不那么灵活了。

这个时候就引出了fixture实现部分前后置

语法:@pytest.fixture()

参数:

scope --作用域  

        function:函数之前和之后执行

        class:类之前和之后执行

        package/session:整个项目会话之前和之后执行

autouse --自动执行

        默认:False;如果改为True,则不需要调用,在对应的作用域会自动执行

...

先举个通俗的例子:

CommonUtil里面的代码注释掉,直接pass,让它不再生效

然后修改测试文件:

执行后就可以看到,只有test_py方法调用了exe_sql方法。

加上第二个参数autouse值为True,执行就可以看到所有用例都引用了exe_sql方法

到目前为止,所有都是“之前”执行,“之后”怎么做呢

之后”要用yield

执行结果:

注:一个文件中可以有多个fixture,可以按照需要添加多个

但是fixture这个固件只在当前文件生效,其他文件是不会生效的,如果其他文件要生效就要配置conftest.py文件了。

而且还有很多其他参数,这些我们明天再说。

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!å¨è¿éæå¥å¾çæè¿°

最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!喜欢软件测试的小伙伴们,可以加入我们的测试技术交流扣扣群:779450660里面有各种软件测试资源和技术讨论)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一.方法简介 二.实战演习 测试用例的设计方法(全) 1.定义   是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。     2.划分等价类:   等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。   1)有效等价类     是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。   2)无效等价类     与有效等价类的定义恰巧相反。无效等价类指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。   设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。    3.划分等价类的标准:   1)完备测试、避免冗余;   2)划分等价类重要的是:集合的划分,划分为互不相交的一组子集,而子集的并是整个集合;   3)并是整个集合:完备性;   4)子集互不相交:保证一种形式的无冗余性;   5)同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到"相同的执行路径"。
引用: pytest -s -v [demo.py](http://demo.py) --workers 1 --tests-per-worker 4。 引用: 利用pytest-parallel:1进程4线程运行 pytest -s -v demo.py --workers 1 --tests-per-worker 4。 引用: 发现新问题 当前版本的 pytest-parallel 和pytest-xdist 在python3.9上不兼容。 根据引用和引用,可以看出这是在使用pytest执行测试用例的命令。其中,`-s`参数表示输出详细日志信息,`-v`参数表示输出详细的测试结果信息,`--workers 1`参数表示使用一个进程来运行测试用例,`--tests-per-worker 4`参数表示每个进程运行4个测试用例。 然而,根据引用提到的问题,当前版本的pytest-parallel和pytest-xdist在Python 3.9上不兼容。这可能意味着在Python 3.9上无法使用`pytest-parallel`来实现多线程运行测试用例的功能。 至于`--=no`部分,根据提供的引用内容中没有相关信息,无法给出具体解释。请提供更多上下文或引用内容以获得更准确的回答。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [win-python-pytest(pytest-parallel/pytest-xdist)自动化测试多线程的验证](https://blog.csdn.net/Franciz777/article/details/120976872)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值