[python]pytest实现WEB UI自动化

前言:其实这篇写的是pytest的测试框架运用,实现自动化和https://www.cnblogs.com/Jack-cx/p/9357658.html 原理一致

 

1.为啥不用unittest

Pytest相对Unittest更加灵活一点,unittest需要写类继承unittest.TestCase,pytest不需要可写可不写类,也支持生成html测试报告

 

2.创建工程

&对比上面robot的工程,增加一个PyUnit目录和report,这里主要放单元测试框架其他实现思路一致,report放执行后生成的html报告

3.新建测试用例

&可以看出单元测试框架命名规则风格其实都是一致的,调用“底层“写的一个方法去读execel运行测试用例

 

4.pytest运行用例规则

&深入研究请百度,下面只让你能独立写一个自动化工程的目的

 

1.文件已 test_开头 test_*.py

2.类已Test_开头 class Test_login()

3.方法已test_开头 def test_login()

 

5.初始化和清理的方法使用

  • fixture函数可以使用在测试函数中,测试类中,测试文件中以及整个测试工程中。
  • fixture支持模块化,fixture可以相互嵌套
  • fixture支持参数化
  • fixture支持unittest类型的setupteardown

1)模块级(setup_module/teardown_module)开始于模块始末:在所有测试用例开始执行setup_module和所有用例执行结束后执行teardown_module

2)类级(setup_class/teardown_class)开始于类的始末:在当前测试类的开始与结束执行

3)类里面的(setup/teardown)(运行在调用函数的前后)

4)功能级(setup_function/teardown_function)开始于功能函数始末(不在类中):用于每个测试用例开始执行时执行setup_function和在每个用例执行结束后执行teardown_function

5)方法级(setup_method/teardown_method)开始于方法始末(在类中):在每个测试方法开始与结束执行

 

&本次以UI自动化为例,只用到的setup_method每次用例执行先调用浏览器打开网址

细节可参考:https://www.cnblogs.com/ranxf/p/7766229.html讲的比较细

 

6.多种运行测试用例

 

&运行目录下所有测试用例

 

Dos下 到Pyunit下执行 py.test –html=需要生成的report路径

 

 

 

&运行执行某个py文件里的用例

 

Dos下 到Pyunit下执行 py.test  文件名.py –html=需要生成的report路径

 

 

 

&运行类里的某个方法

 

pytest -v test_a.py::TestClass::test_method

 

 

 

&运行指定的类中所有方法

 

pytest -v test_a.py::TestClass

 

 

 

&组合运行

 

pytest -v test_a.py::TestClass test_b.py:: test_method

7.断言

简单断言,用例执行完返回一个TrueFalse assert==True,True则通过,否则失败

 

posted @ 2018-07-24 00:10  t_zcx  阅读(2751)  评论(0编辑  收藏  举报