pytest

Pytest: Parameterize unit test using a fixture that uses another fixture as input

会有一股神秘感。 提交于 2020-08-19 08:38:05
问题 I am new to parameterize and fixtures and still learning. I found a few post that uses indirect paramerization but it is difficult for me to implement based on what I have in my code. Would appreciate any ideas on how I could achieve this. I have a couple of fixtures in my conftest.py that supply input files to a function "get_fus_output()" in my test file. That function process the input and generate two data-frames to compare in my testing. Further, I am subletting those two DF based on a

Configure Pytest discovery to ignore class name

百般思念 提交于 2020-08-19 06:11:31
问题 Pytest's default discovery rules will import all Class starting with Test that do not have an __init__() . I have a situation where this causes an incorrect class to be imported. I am testing a django project that uses Factory Boy. http://factoryboy.readthedocs.org/en/latest/ to build out a Django model named Testimonial . like so: class TestimonialFactory(factory.Factory): class Meta: model = models.Testimonial This issue is that factory.Factory does not have an __init__() . So py.test sees

Configure Pytest discovery to ignore class name

本小妞迷上赌 提交于 2020-08-19 06:11:04
问题 Pytest's default discovery rules will import all Class starting with Test that do not have an __init__() . I have a situation where this causes an incorrect class to be imported. I am testing a django project that uses Factory Boy. http://factoryboy.readthedocs.org/en/latest/ to build out a Django model named Testimonial . like so: class TestimonialFactory(factory.Factory): class Meta: model = models.Testimonial This issue is that factory.Factory does not have an __init__() . So py.test sees

Configure Pytest discovery to ignore class name

て烟熏妆下的殇ゞ 提交于 2020-08-19 06:10:07
问题 Pytest's default discovery rules will import all Class starting with Test that do not have an __init__() . I have a situation where this causes an incorrect class to be imported. I am testing a django project that uses Factory Boy. http://factoryboy.readthedocs.org/en/latest/ to build out a Django model named Testimonial . like so: class TestimonialFactory(factory.Factory): class Meta: model = models.Testimonial This issue is that factory.Factory does not have an __init__() . So py.test sees

pytest文档46-关于https请求警告问题(InsecureRequestWarning: Unverified HTTPS request is being made)

放肆的年华 提交于 2020-08-18 12:05:11
前言 使用 pytest 执行 https 请求用例的时候,控制台会出现警告:InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. 当出现这个警告的时候,我们第一反应是加忽略警告:urllib3.disable_warnings(),然而并不管用。 问题描述 使用requests库发https请求,添加verify=False忽略证书 # test_https.py import requests import urllib3 urllib3.disable_warnings() def test_h(): ''' author: 上海-悠悠 QQ交流群:779429633 blog: https://www.cnblogs.com/yoyoketang :return: ''' url = "https://www.cnblogs.com/yoyoketang" s = requests.session() s.verify = False r = s.get(url) assert "上海-悠悠" in r.text 命令行使用pytest运行用例 D:\demo>pytest test_https

Python——自己的第一个网页(文件的使用)

天涯浪子 提交于 2020-08-18 08:23:50
一、文件的学习。 1、概述。   文件是一个存储在辅助存储器上的数据序列,可以包含任何数据内容。概念上,文件是数据的集合和抽象。 2、类型。   文件包括两种类型: 文本文件 和 二进制文件 。   二进制文件和文本文件最主要的区别在于是否有统一的字符编码。<二进制文件直接由比特0和比特1组成,没有统一字符编码> 下面运行代码直观感受一下二者的区别: textFile = open( " D:\\桌面\\pytest\\test.txt " , " rt " ,encoding= " utf-8 " ) # t表示文本文件方式 print (textFile.readline()) textFile.close() binFile = open( " D:\\桌面\\pytest\\test.txt " , " rb " ) # b表示二进制文件方式 print (binFile.readline()) binFile.close() 结果如下: 世事一场大梦,人生几度秋凉? b'\xe4\xb8\x96\xe4\xba\x8b\xe4\xb8\x80\xe5\x9c\xba\xe5\xa4\xa7\xe6\xa2\xa6\xef\xbc\x8c\xe4\xba\xba\xe7\x94\x9f\xe5\x87\xa0\xe5\xba\xa6\xe7\xa7\x8b\xe5\x87

pytest——pycharm中右击运行(run)没有问题,在terminal中运行pytest报错:E ModuleNotFoundError: No module named

。_饼干妹妹 提交于 2020-08-18 04:20:40
参考了这个解决办法:https://blog.csdn.net/qq_36829091/article/details/82180866 我的是Windows,linux的和Windows的解决办法有些不一样,但也是大同小异,需要改一下环境变量 这是我的文件目录 需要在test_calc.py中导入python_math_demo里的calc,在pycharm中右击运行没有任何问题。 在terminal中运行pytest报错 如果是pycharm的错误或者是导入的错误,不可能一个能运行成功一个运行错误。所以我猜是pycharm的IDE的运行机制和terminal的运行机制不一样才导致这种情况 参考资料所得:https://blog.csdn.net/qq_36829091/article/details/82180866 Python在启动解释器(Interpreter)时 不仅会导入环境变量中 sys.path 发现的模块,还会导入当前工作目录下的模块 。 具体什么事sys.path和当前工作模块,可参考上面的链接。 通过在文件头加上输出环境变量,然后再terminal中运行pytest。运行结果的第一个路径就是当前路径 解决办法: 第一种方法:是在环境变量中加入当前模块路径。(但由于我不喜欢在环境变量中加很多东西,所以就省略了这步) 第二种方法:以下两个命令其中一个就可

基于pytest实现appium多进程兼容性测试

依然范特西╮ 提交于 2020-08-17 18:18:50
前言 在实际工作中,如果要用appium实现多设备的兼容性测试,大家想到的也许是“多线程”,但由于python中GIL的影响,多线程并不能做到"多机并行",这时候可以考虑使用多进程的方式 为什么基于pytest 我们知道,pytest中的conftest.py可以定义不同的fixture,测试用例方法可以调用这些fixture,来实现数据共享。以前的框架的思路是:Common目录下的base_driver.py定义生成driver的方法-->conftest.py中调用前者生成driver-->TestCases下的测试用例调用fixture,来实现driver共享 。但是现在不同了,我们有多个设备,这些设备的信息如果只是单纯的写在yml中,我们并行去取的时候似乎也不方便,那可以写在哪里?conftest.py似乎也不是写设备信息的好地方,最后只剩下了main.py,而且将main.py作为多进程的入口再合适不过了 但问题又来了,如果我们想启动多个appium服务,需要考虑以下几点: appium通过什么方式启动? 设备信息如何传递给base_driver方法来生成driver 第一点很明确,客户端启动appium server的方式似乎有点不合时宜了,如果你要同时测5个手机,难道要一个个启动客户端吗?最好的方式是启动命令行,因为命令行启动更方便更快 再说第二点前,先整理一下思路

基于Python豆瓣自动化测试【2】

左心房为你撑大大i 提交于 2020-08-17 16:42:36
—— Pytest基础使用教程【2】 从测试报告说起 承接上一篇中最后的测试结果图,使用过的pytest-html 插件原生态的报告的话。可能会发现 内容样式都有些不同。其实是做了些扩展相关设置所呈现的效果,当然可以定制的更深度一些,更加中文、本地化,又或者根据公司需要进行定向研发。例如就上文中的测试报告进行一些中文定制改造后效果如下图所示。这篇就如何优化、定制pytest-html 测试报告进行些讲解 Pytest-html 扩展 目前最新的 pytest-html版本为2.1.1 。这个版本共提供 5个Hook,分别是: def pytest_html_report_title(report) 设置测试报告的标题 def pytest_html_results_summary(prefix, summary, postfix) 在Summary部分,添加自定义内容 def pytest_html_results_table_header(cells) 定制 Result 部分,表单的头部 def pytest_html_results_table_row(report, cells) 定制Result部分,每行测试Case的内容 def pytest_html_results_table_html(report, data) 在完成Result渲染后

PO模式你会吗?自动化测试PO模式分层如何实现?

↘锁芯ラ 提交于 2020-08-17 15:22:50
一、什么是PO模式 全称:page object model 简称:POM/PO PO模式最核心的思想是分层,实现松耦合!实现脚本重复使用,实现脚本易维护性! 主要分三层: 1.基础层BasePage:封装一些最基础的selenium的原生的api方法,元素定位,框架跳转等。 2.PO层:元素定位、获得元素对象,页面动作 3.测试用例层:业务逻辑,数据驱动! 三者的关系:PO层继承继承层,测试用例层调用PO层! 二、什么是自动化测试框架 说到自动化框架,我相信很多人应该都听过这个词,但是不知其到底是个什么东西,为什么要用自动化框架。有很多人堆自动化框架都是懵懵懂懂,就跟谈恋爱一样,朦胧美! 一个好的自动化测试框架是可以让不那么懂技术的人也可以写自动化测试脚本的, 一个好的自动化测试框架可以减少自动化测试中脚本管理和维护当中的人力物力和财力。 其实自动化框架的一个最大的意义在于可重用性。因为在框架里,你可以实现很多的通用功能来简化整个脚本的开发过程。并且生成美观的测试报告。 三、非PO模式和PO模式优缺点对比 自动化软件测试交流!!!群:642830685,领取最新软件测试资料大厂面试和Python自动化学习资料!一起学习交流 非PO模式 面向过程的线性脚本POM把页面元素定位和业务操作流程分开。实现松耦合。 复用性差UI元素的改变不需要修改业务逻辑代码