SST - 网络测试框架
项目描述
- Web主页:
- 项目主页:
- PyPI:
- 许可证:
Apache许可证,版本2.0
使用Python进行自动化测试
SST(selenium-simple-test)是一个使用Python生成基于浏览器功能的测试的Web测试框架。
测试由脚本组成,这些脚本通过组合驱动浏览器和断言条件的动作来创建。您拥有完整的Python语言的灵活性,以及一组方便的函数来简化Web测试。
SST包括
Python中的用户操作和断言(API)
测试用例加载器(将脚本生成/编译为unittest用例)
控制台测试运行器
数据参数化/注入
可选输出报告
可选浏览器
无头(xvfb)模式
错误时截图
测试输出显示在控制台,并且可以选择保存为JUnit兼容的XML格式,以与CI系统兼容。
安装
pip install -U sst
例如,在Ubuntu/Debian系统上,您可以像这样安装SST(全局):
$ sudo apt-get install python-pip xvfb $ sudo pip install -U sst
或者使用一个virtualenv
$ sudo apt-get install python-virtualenv xvfb $ virtualenv ENV $ source ENV/bin/activate (ENV)$ pip install sst
注意:xvfb仅在您想要以无头模式运行SST时需要。
示例SST测试脚本
SST中的一个示例测试用例
from sst.actions import * go_to('http://www.ubuntu.com/') assert_title_contains('Ubuntu')
使用SST运行测试
创建一个Python脚本(.py)文件,并添加您的测试代码。
然后从命令行调用您的测试脚本,使用sst-run
$ sst-run mytest
注意:您不需要在测试调用中添加.py扩展名
操作参考(sst.actions)
测试脚本在浏览器中执行操作,就像用户一样。SST为您提供了在测试中使用的“操作”(函数)集。这些操作在以下API中定义
sst-run的命令行选项
用法:sst-run <options> [testname]
使用测试名称(s)作为参数调用sst-run将仅运行这些测试。测试名称不应包含文件名末尾的‘.py’。
您可以选择创建一个数据文件用于数据驱动测试。创建一个与测试同名的txt数据文件,并添加.csv扩展名,使用'^'分隔符。这将使用数据文件中的每一行运行测试(数据文件的第一行是变量名映射)
选项
-h, --help show this help message and exit -d DIR_NAME directory of test case files -r REPORT_FORMAT report type: xml -b BROWSER_TYPE select webdriver (Firefox, Chrome, PhantomJS, etc) -j disable javascript in browser -m SHARED_MODULES directory for shared modules -q output less debugging info during test run -V print version info and exit -s save screenshots on failures -x run browser in headless xserver (Xvfb) --failfast stop test execution after first failure --debug drop into debugger on test fail or error --with-flags=WITH_FLAGS comma separated list of flags to run tests with --disable-flag-skips run all tests, disable skipping tests due to flags --extended-tracebacks add extra information (page source) to failure reports --collect-only collect/print cases without running tests --test run selftests (acceptance tests with django server)
组织测试
为了逻辑组织测试,您可以使用文件系统中的目录。SST将递归地遍历您的目录树,并收集所有测试以执行。
例如,一个简单的测试设置可能如下所示:
/selenium-simple-test /mytests foo.py
您会从命令行调用此操作
$ sst-run -d mytests
更复杂的设置可能如下所示:
/selenium-simple-test /mytests /project_foo /feature_foo foo.py /project_bar feature_bar.py feature_baz.py /shared module.py utils.py
您仍然会像从命令行一样调用此操作
$ sst-run -d mytests
SST将在子目录中找到所有测试(包括符号链接)并执行它们。SST不会查看以下划线开头的目录。这允许您将Python包/模块直接放入您的测试目录中。更好的选项是使用共享目录。
在unittest测试套件中使用SST
SST使用unittest测试用例在内部包装脚本的执行,并处理启动和停止浏览器。如果您希望将一些SST测试集成到现有的unittest测试套件中,可以使用runtests.py中的SSTTestCase。
from sst.actions import * from sst import runtests class TestUbuntu(runtests.SSTTestCase): def test_ubuntu_home_page(self): go_to('http://www.ubuntu.com/') assert_title_contains('Ubuntu')
因此,在文件名test_ubuntu.py中,您可以运行测试(例如)
python -m unittest test_ubuntu.py
sst-run通过-x选项提供了一个无头xserver。 SSTTestCase通过两个类属性提供了相同的功能(具有相同的实现)。
xserver_headless当设置为True时,将为每个测试启动一个无头服务器(并在测试后停止)。如果您想要在多个测试之间共享同一服务器,请设置xvfb。然后您负责启动和停止此服务器(有关详细信息,请参阅src/sst/xvfbdisplay.py或src/sst/tests/test_xvfb.py中的示例)。
sst.config模块
在测试中,您可以导入 sst.config 模块,以了解当前测试环境的各种信息。sst.config 模块包含以下信息:
from sst import config # is javascript disabled? config.javascript_disabled # which browser is being used? config.browser_type # full path to the shared directory config.shared_directory # full path to the results directory config.results_directory # flags for the current test run config.flags # A per test cache. A dictionary that is cleared at the start of each test. config.cache
禁用 JavaScript
如果您需要禁用单个测试中的 JavaScript,可以在测试开始时添加以下内容:
JAVASCRIPT_DISABLED = True
在 Ubuntu/Debian 上进行开发
SST 主要在 Linux 上进行开发,特别是 Ubuntu。它应该在其他平台上运行良好,但任何问题(或者更好的是 - 补丁)都应该在 Launchpad 项目上进行报告。
获取 SST Trunk 的副本,创建并激活一个虚拟环境,安装依赖项,并从 dev 分支运行 examples/self-tests
$ sudo apt-get install bzr python-virtualenv xvfb $ bzr branch lp:selenium-simple-test $ cd selenium-simple-test $ virtualenv ENV $ source ENV/bin/activate (ENV)$ pip install -r requirements.txt (ENV)$ ./sst-run -d examples
(可选) 安装测试依赖项并运行 SST 的内部单元测试
(ENV)$ pip install mock nose pep8 (ENV)$ nosetests --match ^test_.* --exclude="ENV|testproject|selftests"
(可选) 安装 django 并运行 SST 的内部测试应用程序,使用验收测试
(ENV)$ pip install django (ENV)$ ./sst-run –test -x
为了手动设置依赖项,SST 使用以下非标准库包
selenium
testtools
django (可选 - 仅用于内部自测试)
运行示例
SST 源代码存储库和软件包下载包含一些简单的示例脚本。
您可以从本地 sst 目录运行它们,如下所示:
$ ./sst-run -d examples
运行自测试
SST 源代码存储库和软件包下载包含一组基于包含的测试 Django 项目的自测试。
您可以从本地分支运行自测试套件(以及测试 Django 服务器),如下所示:
$ ./sst-run --test
项目详细信息
sst-0.2.4.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | cc2a5469e745fef6986df2e3638b0af96a6033a1b268bdc4654d27b2914d0d0f |
|
MD5 | 501e3dd29eff1acfb141a4eebc9147a7 |
|
BLAKE2b-256 | a152de850270ffe20766f6ca1c19a0fd2d0ed0a2143950210446a74815c614f0 |