下一代测试自动化。

ngta的Python项目详细描述


中文 README


指南http://docs.cavia.io/ngta

注释

  • 从1.0版开始,仅支持python>;=3.5.2。
  • 从版本2.0开始,与UnitTest不兼容。
  • 从4.0版开始,仅支持python>;=3.6.5。

介绍:

ngta的全称是下一代测试自动化,它的设计关键字如下:

  • 独立经营
  • 跨平台。
  • 强大的testcase参数化。
  • 添加测试台概念
  • 添加事件机制。
  • 本地模式:
    • 使用schema的强大的yml配置。
    • HTML报表可以扩展和自定义
    • 当testbench不是独占的时,支持用多进程运行测试用例。
  • 代理模式:
    • 使用rabbitmq中的testcase和多个进程。
    • 提供http restful接口。
    • 支持分布式
    • 与CAVIA平台集成。

安装

  1. 安装NGTA:

    pip install ngta

  2. 生成工作目录:

    python -m ngta init --dest-dir=${WORKDIR} --include-sample

注意:${workdir}表示目标目录。

为什么我们需要工作目录:

  1. 测试代码也需要版本控制,请使用git。
  2. 良好的工作结构有助于测试用例的管理

生成的工作目录:

${WORKDIR}                          root dir
|-- bin                             
    |-- agent.exe                   exe file for installing test agent as service in Windows.
    |-- agent.service               systemd service file for linux. 
    |-- agent.xml                   the config file for installing as service in Windows.
|-- cases                           tesetcase dir
    |-- sample1                     project or product dir1(GIT submodule1)
    |-- sample2                     project or product dir2(GIT submodule2)
|-- conf                            agent config files 
|-- lib                             internal libraries.
|-- logs                            userd for saving log, result and report.
|-- .ngta                           anchor file, also used to store configuration.

节点:为了与平台集成,将每个项目或产品创建为git存储库,并将其作为git子模块放入${workdir}/cases中。


示例:按yml config

运行测试
  1. 打开命令行,运行以下命令:

    cd ${WORKDIR}
    python -m ngta run --config=cases\sample\base\config.yml

  2. 运行完成后,我们可以在${WORKDIR}\logs中找到日志和报表。
  3. ${WORKDIR}\cases\sample\base\config.xml中,它配置如何在${WORKDIR}\cases\sample\base\test_equal.py中加载测试并注入参数

示例:按路径运行测试

  1. 打开命令行,运行以下命令:

    cd ${WORKDIR}
    python -m ngta run --locate=sample.base.test_equal

  2. 运行完成后,我们可以在${WORKDIR}\logs中找到日志和报表

注释

  • --locate可以是packagemoduleclassmethodpy filedir
  • 当指定--locate时,它还支持其他参数--tag--include--failfast--repeat-number等。

示例:run.py文件

  1. 打开命令行,运行以下命令:

    cd ${WORKDIR}\cases\sample\base
    python test_equal.py

  2. 运行完成后,可以在${WORKDIR}\cases\sample\base中找到report.html

与unittest.testcase不同:

复习${WORKDIR}\cases\sample\base\test_equal.py

# coding: utf-8fromngtaimportTestCase,tag,testclassEqualTestCase(TestCase):@tag("regression")@test(u"Test {value1} equal with {value2}")deftest_int(self,value1=1,value2=2):msg="%s should equal with %s."%(value1,value2)self.assert_that(value1,msg).is_equal_to(value2)
  • @tag指定标记regression
  • @test用于指定这是一个测试用例。
  • assert_that引用:assertpy

报告示例


更多功能:Guide

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在IE10中重新加载另一个帧时,internet explorer Java小程序失败/消失   ThreadLocal变量的java性能   java系统。出来println不是打印输出   java从JAXB类获取元素属性   java组织。天啊。科尔巴。包裹。InvalidName:IDL:omg。org/CORBA/ORB/InvalidName:1.0   java有没有办法让非事务连接抛出异常?   java是否有任何方法可以使用JdbcTemplate和查询/条件Fluent API   javajpa级联类型。刷新不工作?   未考虑java Maven依赖关系管理   java MySQL MBR包含抛出MySQLExceptionError的语句   java验证整数并将其设为5位数   java发现了循环依赖的问题   java Hibernate left join fetch到使用@ManyToMany关联映射的softdeleted实体生成无效查询?   JavaH:commandButton多个操作:下载文件并呈现ajax表   Google Contacts API在Java、C#、Python或Ruby中是否有一个Hello World示例?