当前位置: 首页 > news >正文

济南seo网站关键词排名沧州市青县建设局网站

济南seo网站关键词排名,沧州市青县建设局网站,学校网站建设案例,wordpress varnish引言   前面一篇文章Python单元测试框架介绍已经介绍了python单元测试框架#xff0c;大家平时经常使用的是unittest#xff0c;因为它比较基础#xff0c;并且可以进行二次开发#xff0c;如果你的开发水平很高#xff0c;集成开发自动化测试平台也是可以的。而这篇文章… 引言   前面一篇文章Python单元测试框架介绍已经介绍了python单元测试框架大家平时经常使用的是unittest因为它比较基础并且可以进行二次开发如果你的开发水平很高集成开发自动化测试平台也是可以的。而这篇文章主要讲unittest与pytest的区别pytest相对unittest而言代码简洁使用便捷灵活并且插件很丰富。 Unittest vs Pytest   主要从用例编写规则、用例的前置和后置、参数化、断言、用例执行、失败重运行和报告这几个方面比较unittest和pytest的区别: 用例编写规则 用例前置与后置条件 断言 测试报告 失败重跑机制 参数化 用例分类执行 如果不好看可以看下面表格 总体来说unittest用例格式复杂兼容性无插件少二次开发方便。pytest更加方便快捷用例格式简单可以执行unittest风格的测试用例无须修改unittest用例的任何代码有较好的兼容性。pytest插件丰富比如flask插件可用于用例出错重跑还有xdist插件可用于设备并行执行效率更高。 实例演示   讲了七大区别总要演示一下具体实例用事实说话。 前后置区别   这里抽用例前置与后置的区别来讲先看unittest的前后置使用 import unittestclass TestFixtures01(unittest.TestCase):# 所有用例执行前执行def setUp(self) - None:print(setUp开始)def tearDown(self) - None:print(tearDown结束)# 每条用例执行前执行classmethoddef setUpClass(cls) - None:print(setUpClass开始)classmethoddef tearDownClass(cls) - None:print(tearDownClass结束)# 测试用例def test_001(self):print(测试用例001)class TestFixtures02(unittest.TestCase):def test_002(self):print(测试类2)# 每个模块执行前执行def setUpModule():在所有测试类在调用之前会被执行一次,函数名是固定写法,会被unittest框架自动识别print(集成测试 开始)def tearDownModule():print(集成测试 结束)if __name__ __main__:unittest.main()运行结果 从结果上得知 三个方法的逻辑优先级 setUp()tearDown() setUpClass()tearDownClass() setUpModule()tearDownModule() 接下来看pytest的前后置 1、我们都知道在自动化测试中都会用到前后置pytest 相比 unittest 无论是前后置还是插件等都灵活了许多还能自己用 fixture 来定义。 首先了解一下用例运行前后置级别如下 1.模块级全局的整个模块开只运行一次优先于测试用例。 2.类级别定义在类里面只针对此类生效。类似unittest的cls装饰器 3.函数级只对函数生效类下面的函数不生效。 4.方法级定义在类里面每个用例都执行一次 def setup_module():print(\n整个模块 前 只运行一次)def teardown_module():print(\n整个模块 后 只运行一次)def setup_function():print(\n不在类中的函数每个用例 前 只运行一次)def teardown_function():print(\n不在类中的函数每个用例 后 只运行一次)def test_ab():b 2assert b 3def test_aba():b 2assert b 3class Test_api():def setup_class(self):print(\n此类用例 前 只执行一次)def teardown_class(self):print(\n此类用例 后 只执行一次)def setup_method(self):print(\n此类每个用例 前 只执行一次)def teardown_method(self):print(\n此类每个用例 后 执行一次)def test_aa(self):a 1print(\n我是用例a) # pytest -s 显示打印内容assert a 0def test_b(self):b 2assert b 3运行结果 2、这是原始用法下面看使用FixtureFixture 其实就是自定义 pytest 执行用例前置和后置操作首先创建 conftest.py 文件 规定此命名导入 pytest 模块运用 pytest.fixture 装饰器默认级别为函数级 其它用例文件调用即可如下定义一个函数继承 conftest.py 文件里的 login 函数即可调用 # conftest.py配置需要注意以下点# conftest.py配置脚本名称是固定的不能改名称# conftest.py与运行的用例要在同一个pakage下并且有__init__.py文件# 不需要import导入 conftest.pypytest用例会自动查找import pytestdef test_one(login):print(登陆后操作111)# def test_two():# print(操作222)## def test_three(login):# print(登陆后操作333) 运行结果 3、扩展用法多个自定义函数和全局级别展示全局的比如用于登录获取到token其他用例模块就不需要再登录了 import pytestdef test_one(login):print(登陆后操作111)def test_two(login,open_page):print(测试用例2)def test_three(open_page):print(测试用例3) 运行结果 细心的人应该可以知道测试用例2并没有调用login函数因为前置设置的是共享模式类似全局函数。 参数化区别 参数化应用场景一个场景的用例会用到多条数据来进行验证比如登录功能会用到正确的用户名、密码登录错误的用户名、正确的密码正确的用户名、错误的密码等等来进行测试这时就可以用到框架中的参数化来便捷的完成测试。 参数化 就是数据驱动思想即可以在一个测试用例中进行多组的数据测试而且每一组数据都是分开的、独立的。 unittest参数化其实是ddt叫数据驱动。 pytest数据驱动就是参数化使用pytest.mark.parametrize 1.先看unittest如何进行参数化 test_data [1,2,3]ddt.ddtclass Testddt(unittest.TestCase):ddt.data(*test_data)def test_001(self,get_data):print(get_data)if __name__ __main__:unittest.main() 运行结果 2.pytest中参数化的用法 在测试用例的前面加上 pytest.mark.parametrize(参数名,列表数据) 参数名用来接收每一项数据并作为测试用例的参数。 列表数据一组测试数据。 pytest.mark.parametrize(参数1,参数2,[(数据1数据2),(数据1数据2)]) 示例: pytest.mark.parametrize(a,b,c,[(1,3,4),(10,35,45),(22.22,22.22,44.44)]) def test_add(a,b,c): res a b assert res c 实例 pytest.mark.parametrize(data,[1,2,3])class Testddt(object):def test_001(self,data):print(data)if __name__ __main__:pytest.main([-sv]) 运行结果 总结 以上就是unittest与pytest测试框架的区别七大主要区别这里已讲了两个区别的实例其他五个有时间再补充如对python自动化测试感兴趣的朋友可以加入下方小卡片讨论交流一下心得。
http://www.yutouwan.com/news/242178/

相关文章:

  • 辽宁建设执业继续教育协会网站2003 您的安全设置不允许网站使用安装
  • 资阳市建设局网站如何构建一个电子商务网站
  • 重庆江津做网站北京做网站建设
  • 中国建设银行官企业网站不建议网站
  • 网站编辑是网页制作么网站常用的优化方法
  • 陕西最好的云营销网站建设公司网站开发技术期中试题
  • 华茂达建设集团网站外贸建站有哪些公司
  • 网站打开文件按钮怎么做网站举报官网
  • 网站如何做百度才会收录wordpress添加评论框
  • 一个大型网站建设得多少钱wordpress做门户网站
  • 酒类网站如何做合肥网站建设推广服务
  • 网站推广员需要做什么做网站可以卖钱吗
  • 做液压的公司网站凡客精选带货达人
  • 专业做网站推广的公司霸州网站设计
  • 站长工具站长怎么做网站的百度排名
  • 网站添加锚点本地打开WordPress慢
  • 建站 discuz好的设计作品网站
  • 大良网站建设如何苏州网站的优化
  • 做网站卖机械杭州做网站的优质公司
  • 网站建设站长之家开网店卖什么适合新手
  • 在哪个网站上可以学做衣服动态时钟html代码
  • .net网站开发软件WordPress部署百度广告
  • 临清轴承网站建设梅州网站建
  • 北京做网站多少钱合理青海网站建设哪家好
  • 建网站需要多钱目前最新的营销方式有哪些
  • 网站备案必须是企业吗网站一键生成手机网站
  • 怎么免费做网站pc营销型网站
  • 石家庄外贸网站推广深圳建设网站制作
  • 网站建设与开发定制广告公司有哪些
  • 怎么做网站解析酒泉网站建设与制作