在Zope2中运行Selenium测试套件
项目描述
Zelenium: Zope2上的Selenium测试
概述
此产品允许开发者在他们的Zope实例内创建TTW Selenium测试套件,以便对他们网站进行基于浏览器的功能测试。
先决条件
一个有效的Zope2安装。有关在虚拟环境中设置Zope 2.12的说明,请参阅安装Zope,或在buildout中安装它的说明,请参阅使用zc.buildout安装Zope。
安装产品
如果您使用buildout,请将Products.Zelenium添加到实例部分的eggs =参数。
如果使用virtualenv方法开发Zope2软件,请将Products.Zelenium添加到您的包的setup.py中的install_requires参数,或者安装Zope2后直接运行bin/easy_install Products.Zelenium。
最后,如果您使用传统的INSTANCE_HOME安装方法
在临时位置解压tarball。
将 Zelenium 目录复制或移动到您的 INSTANCE_HOME 的 Products 目录。
重启 Zope。
使用 Zelenium
您可以在 Zope 网站的任何位置添加一个 Zuite 对象。它作为一个标准顺序文件夹,有一些区别
它的 index_html 是来自 Selenium 的“TestRunner.html”视图。
它从所有以 test 开头的 OFS.Image.File 对象中推导出测试套件(在左上角的 iframe 中)。您可以使用有序文件夹支持来修改测试用例文件的运行顺序。
它提供了一个“Zip”操作,允许您将测试套件、所有测试用例以及支持的 Selenium Javascript / CSS 文件作为一个单独的、自包含的 zipfile 导出。
针对 Zelenium 报告错误
请使用 Launchpad 报告您发现的针对产品的错误,以及提交补丁、请求功能等。
添加测试
测试只是以 test 开头的 File 实例。它们应该具有 text/html 的内容类型,并应包含一个表格,该表格定义了组成测试用例的步骤。
有关表格结构和 Selenese 语言的文档,请参阅 http://selenium.thoughtworks.com/testrunner.html。
将其他元类型作为测试用例使用
在测试套件的“属性”标签页上,您可以添加/修改套件允许作为测试用例的元类型列表。例如,添加“Script (Python)”允许您在 PythonScripts 中定义测试用例。
嵌套测试套件
每个测试套件自动包含它包含的任何套件的测试用例。您可以利用此功能以层次结构组织测试用例,单独运行它们,或全部一起运行。
从文件系统中包含测试
测试套件现在有一个属性,filesystem_path;如果设置,则套件将从指向该路径的目录下的文件递归加载测试用例。
要包含的文件列表通过以下规则计算
如果 testsuite_name 属性包含目录中存在的文件名,则假定它包含包含测试的文件的列表,每行一个。测试用例将按照文件中指示的顺序呈现,并且测试用例可以多次包含。
如果 testsuite_name 属性为空,但目录包含一个文件 .objects,则假定它包含要包含的文件列表,每行一个;将仅包含这些文件/子目录(如果存在)。在这种情况下,测试用例将按照文件中指示的顺序呈现,然后是子目录中的任何测试用例。
否则,如果套件的属性 filename_glob 非空,则它将通过 Python 的 glob.glob 展开,以计算文件名列表。测试用例将按字母顺序呈现,然后是子目录中的任何测试用例。
否则,任何文件都将被视为测试用例。测试用例将按字母顺序呈现,然后是子目录中的任何测试用例。
导出存档
在“Zip”选项卡上,提供文件名并点击“下载”按钮。Zuite 对象将构建一个包含以下内容的 zip 文件
- index.html
“TestRunner.html”框架页面
- TestSuite.html
测试用例文件列表(呈现为静态 HTML)
- test*
您的测试用例文件(如果 ID 没有扩展名,则附加 .html)
存档还将包含驱动 browserbot 的每个支持 .js 和 .css 文件。
创建快照
在“压缩”选项卡中,输入文件名并点击“下载”按钮。Zuite对象将构造一个包含上述相同内容的zip文件,并将其保存为其自身内容的File对象。
使用tcpwatch生成测试用例
从Shane Hathaway的网站下载tcpwatch产品
解压并以“HTTP代理”模式运行tcpwatch,开启记录功能。例如,以下命令在9999端口上运行代理,将请求数据/响应数据记录到目录/tmp/recorded_scenario
$ python /path/to/tcpwatch/ tcpwatch.py \ -p 9999 -r /tmp/recorded_scenario
配置您的浏览器以在本地主机9999端口上使用HTTP代理。
浏览您的网站,测试您要测试的功能。
停止代理。运行generator.py脚本,指向tcpwatch记录的目录
$ python /path/to/Zelenium/generator.py \ --logfile-directory=/tmp/recorded_scenario \ --output-file=test_case_name.html
编辑生成的测试用例,删除/更正各种步骤。
将测试用例上传到Zelenium Zuite并运行。
从测试运行中捕获结果
Selenium有一个功能,允许测试运行器将自动化测试运行的结果数据上传到服务器。
像往常一样从您的浏览器中调用测试套件,但将查询字符串?auto=true附加到URL,例如:
Selenium将运行所有测试用例,然后将结果数据上传到您的套件的postResults方法。请注意,您不再需要在您的站点根目录中包含postResults PythonScript,因为Selenium的最新版本会将结果数据发送到与测试套件相关的名称。
Zelenium产品更改日志
1.0.3 (2010-11-10)
移除setuptools_bzr需求,因为这个包导致安装中断。相反,添加一个替换的sdist命令,如果无法导入setuptools_bzr,则中断。
1.0.2 (2010-05-05)
将setuptools_bzr添加为setup需求,以避免未来的brown-bag版本。
修复了包含非ASCII文本的结果视图的渲染问题。感谢Leo Rochael进行测试和修复。修复了lp:575415。
更新README以指示Zope2先决条件,并指向其安装文档。
1.0.1 (2010-04-07)
仅更新打包,修复brown-bag发布(除元数据文件外)。另外,注意将错误跟踪器从www.zope.org移动到Launchpad。
1.0 (2010-04-07)
在Zope 2.12下进行了Eggify、测试和删除弃用。
从svn.zope.org迁移到Launchpad。
更新了包含的selenium到selenium-core 0.8.3。
应用了Rob Miller的修复,使Zelenium Zuite对象在存在five:traverse的情况下可用,使index_html成为显式默认视图。
修正了README中的文档,以捕获测试运行的输出结果(《auto=1》变为《auto=true》,与Selenium文档保持一致)。感谢Yoshinori Okuji指出这一点。
0.8 (2006/05/16)
通过包装在ZIP文件创建期间渲染的文件系统对象来修复单元测试,OFS.Image中的代码想要获取REQUEST并使用RESPONSE。
找到了使对ExternalEditor的依赖项可选的方法(感谢Andreas Jung的bug报告)。
从清单中删除了空文件名,以避免无限递归。
添加了testsuite_name属性,允许从单个文件系统目录中的测试用例构建多个测试套件。
升级到selenium版本0.6
套件现在递归遍历所有“文件夹”子对象,寻找测试(例如,允许通过CMF的FileSystemDirectoryView从磁盘加载测试)。感谢Malcom Cleaton的补丁!
在__init__.py中定义zelenium_globals,以便能够将selenium目录注册为CMF皮肤目录。
如果在zope.conf中将debug-mode设置为“开启”,基于文件系统的测试用例文件每次使用时都会重新加载,以简化基于文件系统的测试套件的开发。这种行为模仿了CMF Filesystem Directory Views在开启debug-mode时的行为。
已将仓库移动到Subversion:svn+ssh://svn.zope.org/repos/main/Zelenium/
0.7 (2005/06/07)
升级到使用Selenium 0.4.0的“核心应用”。请参阅http://selenium.thoughtworks.com/release-notes.html了解变更摘要。
0.6 (2005/05/09)
添加了抑制在快照/下载中包含Selenium支持文件的功能。
添加了对从映射的目录路径返回测试用例的支持,包括对该路径子目录的递归。当前实现存在以下问题:
- o 它只为测试用例创建OFS.Image.File对象(没有模板、脚本等)
脚本等)
为Zuite.__getitem__行为添加单元测试,包括支持文件。
0.5.1 (2005/05/07)
通过添加图标,使结果视图中通过/失败的测试用例在打印表示中更明显。请注意:目前我们是通过嗅探测试用例的“粉色”背景HTML来做到这一点的。
应用来自selenium-devel列表的补丁,以修复在postTestResults中测试用例HTML提取的回归。
将发布的结果文件夹变成自己的类,该类从Folder继承(将模板移动到PageTemplateFile)。
进一步修复了递归ZIPfile生成,包括对生成的HTML中的URL进行标准化。
扩展了zuite单元测试,以测试listTestCases和manage_createSnapshot,以及递归ZIPfile生成。
0.5 (2005/05/04)
更新为使用Selenium版本0.3.0的“TestRunner核心”。有关更多信息,请参阅http://selenium.thoughtworks.com/release-notes.html。
为Zuite类添加单元测试。
使ZIPfile生成与嵌套套件一起工作。
0.4.1 (2005/05/02)
修复了manage_main中外部编辑器链接的损坏。
在测试表显示中对非填充整数ID进行补偿(使其正确排序)。
0.4 (2005/04/27)
使Zuite实例递归包含其Zuite子代测试用例(以便更容易地对测试用例进行分层组织)。
允许单个zuites通过新的testcase_metatypes属性覆盖可以测试的元类型列表。
即使存在外部编辑器(其猴子补丁似乎会破坏它),也强制Zuite对象显示顺序支持。如果产品可用,显示EE图标
注意:我们正在分叉OFS/dtml/main.dtml和ExteranalEditor/manage_main.dtml中的版本,以公开顺序支持,这是一个相当暴力的黑客行为。我们可能需要修复ExteranalEditor,并删除分叉的副本。
0.3.1 (2005/04/26)
在postResults期间记录服务器端数据:Zope版本字符串、产品名称和版本。
在postResults中捕获额外的请求参数:用户代理、HTTP主机、远程地址。
0.3 (2005/04/25)
将postResults处理代码添加到套件的子文件夹中,以捕获结果。
0.2.1 (2005/04/21)
修复了输入小部件发出的HTML(关闭tr标签)。
修复了代码中的解包错误,该代码对“外国”主机的请求进行规避。
规避处理XML-RPC请求(例如,Epoz回调到服务器以运行Tidy)。
0.2 (2005/04/20)
添加了脚本generator.py,用于从tcpwatch创建的请求/响应日志文件中创建Selenium测试用例文件。
允许测试用例是PageTemplates,以及Files,以便通过测试套件的属性进行间接引用(例如,对于用户ID/密码)。
0.1 (2005/04/15)
初始发布
项目详情
Products.Zelenium-1.0.3.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0d9bf56da0e63f8c5f25af919ad87c2cf718ceef59f92af7c526d12c2562e1b0 |
|
MD5 | 57e846e670c4ef139791a9bcbd51c240 |
|
BLAKE2b-256 | d86fc1cadc9cc2e1edf887cc8a5c5b7990be3948b6b207fc2a6a874307abdadd |