当前位置:首页 > 自动化 > 正文

python自动化框架pytest

本文目录一览

⊙^⊙Pytest-allure,为公司定制专属测试框架

Python安装:python.org/downloads

pycharm安装:http://www.jetbrains.com/pycharm/download

pytest安装:pipinstall-Upytest


所有模块文件名必须以test_*.py形式或*_test.py形式出现。

测试模块文件中,测试类以Test开头,不能有输入方法(注意:定义类必须以Test开头,否则pytest不会运行该类

在测试模块中,可以包含一个或多个以test_开头的函数


命令行操作:终端终端(Terminal、cmd、shell

中的pytest命令会跟随

根据命名规则使用可执行文件的原因


Python执行:执行py文件(通常)像这样运行

if__name__=='__main__':

pytest.main(['-s']

下载最新版本的Allure:https://github.com/allure-framework/allure2/releases

解压到非中文目录

然后设置环境变量:

添加诱饵/bin目录到变量路径

找到cmd和lure--version


安装插件lure-pytest-in

pipinstallallure-pytest


创建项目或包

创建脚本文件test-allure.py

转换运行方式为python运行

test-allure.py,会自动生成测试报告

打开测试报告




注释


ˇωˇPython自动化测试框架有哪些?
第一种:RobotFramework
RobotFramework作为python测试最重要的框架之一,主要应用于测试驱动的开发和验收。 虽然是用Python开发的,但它也可以在基于.net的Ironpython和基于Java的Jython上运行。 同时,Robot作为Python框架,还兼容Windows、MacOS和Linux等平台。
使用RobotFramework之前,需要安装python2.7.14及以上版本。 这里建议您使用python3.6.4,以确保可以在代码片段中添加适当的注释并跟踪程序更改,您还需要安装python包管理器--pip。
其他类型:Pytest
Pytest,适合各种软件测试,是另一种Python类型的自动化测试框架。 该工具具有开源、易学的特点,经常被QA小组、开发小组、个人小组以及各种开源项目使用。 鉴于Pytest的断言重写等实用功能,许多大型互联网应用程序,例如Dropbox和Mozilla,都从下面提到的单元测试转向了Pytest。
除了基础的Python知识外,用户不需要更多的技术储备。 此外,用户只需要拥有一个带有命令行界面的测试单元,并安装了python包管理器和IDE工具即可进行开发。
第三种:UnitTest/PyUnit
UnitTest/PyUnit,受到Junit的启发,也是一个用于单元测试的标准化Python类自动化测试框架。 TestCase基类提供各种断言方法,以及所有清理和设置例程。 因此,TestCase子类中的每个方法都用test作为名词来修饰,以标识它们可以作为测试用例运行。 用户可以使用load方法和TestSuite类来分组和加载不同的测试。 当然,它也可以一起使用来构建自定义测试运行器。 正如我们使用Junit来测试Selenium一样,UnitTest也会使用unittest-sml报告,并且可以生成各种XML类型的报告。
第四:Behave
行为驱动开发是一种基于敏捷软件开发的方法。 它鼓励开发人员、业务参与者和质量控制人员之间的协作。 Python测试框架Behave可以让团队避免各种复杂的情况并进行BDD测试。 本质上,该框架类似于SpecFlow和Cucumber,通常用于执行自动化测试。 用户可以用简单易读的语言编写测试用例,并在执行时将其粘贴到代码中。 此外,指定的行为规范和步骤也可以在其他测试计划中重复使用。
第五种:Lettuce
Lettuce是另一种基于Cucumber和python的行为驱动自动化工具。 Lettuce主要关注以行为驱动开发为特征的常见任务。 不仅简单易用,还让整个测试过程更加顺畅,更加有趣。
需要使用IDE安装python2.7.14及以上版本。 当然,你也可以使用pycharm或者其他IDE工具。 同时,还需要安装python包管理器。


o(╯□╰)opython测试框架:pytest如何实现数据传参

本文主要介绍pytest中传递参数的两种方法:
@pytest.mark.parametrize和@pytest.fixture

参数与参数值一一对应

只有一个参数接收数据

当有多个装饰时,参数会成倍增加。

request接收参数,indirect=True声明login为函数