从zope2中运行selenium测试套件

Products.Zelenium的Python项目详细描述


Zelenium:Zope2的硒测试

概述

此产品允许开发人员创建ttw selenium测试套件 在他们的zope实例中,为了实现基于浏览器的功能 测试他们的站点。

先决条件

  • 正在工作的Zope2装置。有关说明,请参见安装zope 在a virtualenv 中设置zope 2.12或安装zope时 使用zc.buildout 将其安装在建筑物中。

安装产品

如果您正在使用buildout,请将products.zelenium添加到 eggs= 实例部分的参数。

如果使用 virtualenv 方法开发zope2软件,请添加 products.zelenium 设置程序包的.py 或运行 bin/easy_install products.zelenium 安装Zope2后。

最后,如果您使用的是传统的instance_home安装:

< Buff行情>
  1. 在临时位置打开皮球。
  2. 复制或移动 zelenium 目录到 products 目录 你家的实例。
  3. 重新启动Zope。

使用Zelenium

您可以在zope中的任何位置添加一个 zuite 对象 站点。它的行为就像一个标准的有序文件夹,有几个 差异:

  • "testrunner.html"视图很熟悉 从硒中提取。
  • 它派生了测试套件(在左上角iframe中) 所有名以 test 开头的ofs.image.file对象。 您可以使用OrderedFolder支持在 运行的测试用例文件。
  • 它提供了一个"zip"操作,允许您导出 测试套件、所有测试用例和支持的selenium javascript/css文件作为一个独立的zipfile。

报告针对Zelenium的错误

请使用启动板报告错误 您可以根据产品找到,以及提交修补程序、请求 功能等

添加测试

测试只是名称以test开头的文件实例。 它们的内容类型应为 text/html ,并且应包含 定义组成测试用例的步骤的表。

有关文档,请参见http://selenium.thoughtworks.com/testrunner.html" rel="nofollow">http://selenium.thoughtworks.com/testrunner.html。 关于表结构和赛琳娜语。

使用其他元类型作为测试用例

在测试套件的"属性"选项卡上,可以添加/修改 套件将允许作为测试用例的元类型列表。 例如,添加"script(python)",可以定义 pythonscripts中的测试用例。

嵌套测试套件

每个测试套件自动包含 它包含的套房。您可以利用此功能 将测试用例组织在一个层次结构中,在不同的层次结构中运行它们 分段,或一次全部。

包括来自文件系统的测试

测试套件现在有一个属性,文件系统路径 套件将从 该路径指向的目录。

要包含的文件列表通过以下方式计算 规则:

  • 如果testsuite_name属性包含 存在于目录中,假定它包含 包含测试的文件,每行一个。测试用例将是 按文件中指示的顺序显示,以及测试用例 可能包含不止一次。
  • 如果testsuite\u name属性为空,但目录 包含一个文件, 。对象 ,假定为 包含要包含的文件列表,每行一个;仅包含那些 将包括文件/子目录(如果存在)。在这种情况下, 测试用例将按照文件中指定的顺序呈现, 然后是子目录中的任何测试用例。
  • 否则,如果套件的属性, filename_glob 为非空, 它将被扩展(通过python的 glob.glob )来计算列表 文件名的。测试用例将按字母顺序显示 顺序,然后是子目录中的任何测试用例。
  • 否则,任何文件都将被视为测试用例。测试用例 将按字母顺序显示,然后是任何测试用例 从子目录。

导出存档

在"zip"选项卡上,提供文件名并单击"下载"按钮。 zuite对象将构造一个zip文件,其中包含以下内容 内容:

< DL>
index.html
"testrunner.html"框架页
testsuite.html
测试用例文件列表(呈现为静态html)
测试*
您的测试用例文件(如果id没有 分机)

存档还将包含每个支持 .js .css 驱动浏览器的文件。

创建快照

在"zip"选项卡上,提供文件名并单击"下载"按钮。 zuite对象将构造一个包含相同内容的zip文件 如上所述,然后将其作为文件对象保存在自己的内容中。

使用tcpwatch生成测试用例

  1. 从shane hathaway的网站下载tcpwatch产品:

    http://hathawaymix.org/software/tcpwatch

  2. 解包并在其"http代理"模式下运行tcpwatch,并重新编码 打开。例如,以下命令在 端口9999,将请求/响应数据记录到目录 /tmp/录制的场景

    $ python /path/to/tcpwatch/ tcpwatch.py \
        -p 9999 -r /tmp/recorded_scenario
    
  3. 将浏览器配置为在本地主机端口9999上使用http代理。

  4. 点击您的网站,使用您正在测试的功能。

  5. 停止代理。运行 generator.py 脚本,指向 tcpwatch正在录制的目录:

    $ python /path/to/Zelenium/generator.py \
       --logfile-directory=/tmp/recorded_scenario \
       --output-file=test_case_name.html
    
  6. 编辑生成的测试用例,删除/更正 步骤:

  7. 将测试用例上传到Zelenium Zuite并运行它。

从测试运行中捕获结果

selenium有一个允许testrunner上传 从自动测试运行到服务器的结果数据。

像往常一样从浏览器中调用测试套件,但是 查询字符串?auto=true,指向URL,例如:

< Buff行情> http://localhost:8080/test\u套件?自动=真

selenium将运行所有测试用例,然后上载其结果数据 到您套件的 postsults 方法。(注意你不再 需要站点根目录中的 postsults pythonscript,因为 Selenium的最新版本发布到相对于 测试套件)。

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

推荐PyPI第三方库


热门话题
Hibernate:jpamodelgen生成java而不是类   java如何在第二次活动结束后显示广告?   javascript如何在linux或windows上将java导出到jar   java One ArrayList添加了2个不同的选项   AmazonWeb服务如何在java中使用AWS Textract检索pdf中存在的表   java为什么RecycleView中的水平项在单击时不起作用?   java计算如果存在映射   java在捕获的组上应用正则表达式   如何使用Java在MySQL的同一个表中插入来自不同类的值   java字符串中最常见的字母(大写和小写)   Spring SessionBean实例正在由java中的多个用户共享   使用Spring Boot将@WebInitParam中的值外部化   java一创建线程就开始执行(多线程)   java是安卓所需的系统权限。意图行动给你打电话?