zoukankan      html  css  js  c++  java
  • [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则通过,否则失败

  • 相关阅读:
    【洛谷4657】[CEOI2017] Chase(一个玄学的树形DP)
    Tarjan在图论中的应用(二)——用Tarjan来求割点与割边
    Tarjan在图论中的应用(一)——用Tarjan来实现强连通分量缩点
    jquery放大镜
    自定义上传按钮样式
    一些设计理论资料
    jquery滚动条
    全栈工程师到底有什么用(转)
    巧用CSS文件愚人节恶搞(转)
    仿双色球-随机产生7个数字
  • 原文地址:https://www.cnblogs.com/Jack-cx/p/9357680.html
Copyright © 2011-2022 走看看