本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
对 Device Farm 中的 AWS Appium Python 测试进行故障排除
以下主题列出了在上传 Appium Python 测试期间出现的错误消息并推荐了解决方法来解决每个错误。
APPIUM_PYTHON_TEST_PACKAGE_UNZIP_FAILED
如果您看到以下消息,请执行以下步骤来修复此问题。
警告
我们无法打开你的 Appium 测试ZIP文件。请验证文件是否有效,然后重试。
确保您可以解压测试程序包,而不会出现错误。在以下示例中,程序包的名称为 test_bundle.zip。
-
将您的测试程序包复制到工作目录,然后运行以下命令:
$ unzip test_bundle.zip
-
成功解压缩程序包后,您可以通过运行以下命令找到工作目录树结构:
$ tree .
有效的 Appium Python 程序包应生成类似以下内容的输出:
. |-- requirements.txt |-- test_bundle.zip |-- tests (directory) | `-- test_unittest.py `-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl
有关更多信息,请参阅 Appium 测试和 AWS Device Farm。
APPIUM_PYTHON_TEST_PACKAGE_DEPENDENCY_WHEEL_MISSING
如果您看到以下消息,请执行以下步骤来修复此问题。
警告
我们无法在 wheelhouse 目录树中找到依赖项 wheel 文件。请解压缩您的测试程序包,打开 wheelhouse 目录,并验证至少有一个 wheel 文件在该目录中,然后重试。
确保您可以解压测试程序包,而不会出现错误。在以下示例中,程序包的名称为 test_bundle.zip。
-
将您的测试程序包复制到工作目录,然后运行以下命令:
$ unzip test_bundle.zip
-
成功解压缩程序包后,您可以通过运行以下命令找到工作目录树结构:
$ tree .
如果 Appium Python 包有效,你会发现至少一个
.whl
依赖文件,比如里面突出显示的文件wheelhouse
目录。. |-- requirements.txt |-- test_bundle.zip |-- tests (directory) | `-- test_unittest.py `-- wheelhouse (directory) |--
Appium_Python_Client-0.20-cp27-none-any.whl
|--py-1.4.31-py2.py3-none-any.whl
|--pytest-2.9.0-py2.py3-none-any.whl
|--selenium-2.52.0-cp27-none-any.whl
`--wheel-0.26.0-py2.py3-none-any.whl
有关更多信息,请参阅 Appium 测试和 AWS Device Farm。
APPIUM_PYTHON_TEST_PACKAGE_INVALID_PLATFORM
如果您看到以下消息,请执行以下步骤来修复此问题。
警告
我们发现至少有一个 wheel 文件指定了我们不支持的平台。请解压缩您的测试程序包,打开 wheelhouse 目录,并验证 wheel 文件的名称以 -any.whl 或 -linux_x86_64.whl 结尾,然后重试。
确保您可以解压测试程序包,而不会出现错误。在以下示例中,程序包的名称为 test_bundle.zip。
-
将您的测试程序包复制到工作目录,然后运行以下命令:
$ unzip test_bundle.zip
-
成功解压缩程序包后,您可以通过运行以下命令找到工作目录树结构:
$ tree .
如果 Appium Python 包有效,你会发现至少一个
.whl
依赖文件,比如里面突出显示的文件wheelhouse
目录。文件名可能有所不同,但其结尾应为-any.whl
或者-linux_x86_64.whl
,它指定了平台。其他任何平台,如windows
,均不受支持。. |-- requirements.txt |-- test_bundle.zip |-- tests (directory) | `-- test_unittest.py `-- wheelhouse (directory) |--
Appium_Python_Client-0.20-cp27-none-any.whl
|--py-1.4.31-py2.py3-none-any.whl
|--pytest-2.9.0-py2.py3-none-any.whl
|--selenium-2.52.0-cp27-none-any.whl
`--wheel-0.26.0-py2.py3-none-any.whl
有关更多信息,请参阅 Appium 测试和 AWS Device Farm。
APPIUM_PYTHON_TEST_PACKAGE_TEST_DIR_MISSING
如果您看到以下消息,请执行以下步骤来修复此问题。
警告
我们无法在您的测试程序包中找到 tests 目录。请解压缩您的测试程序包,验证 tests 目录位于该程序包中,然后重试。
确保您可以解压测试程序包,而不会出现错误。在以下示例中,程序包的名称为 test_bundle.zip。
-
将您的测试程序包复制到工作目录,然后运行以下命令:
$ unzip test_bundle.zip
-
成功解压缩程序包后,您可以通过运行以下命令找到工作目录树结构:
$ tree .
如果 Appium Python 包有效,你会发现
tests
工作目录内的目录。. |-- requirements.txt |-- test_bundle.zip |--
tests
(directory) | `-- test_unittest.py `-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl有关更多信息,请参阅 Appium 测试和 AWS Device Farm。
APPIUM_PYTHON_TEST_PACKAGE_INVALID_TEST_FILE_NAME
如果您看到以下消息,请执行以下步骤来修复此问题。
警告
我们无法在 tests 目录树中找到有效的测试文件。请解压缩您的程序包,打开 tests 目录,并验证至少有一个文件的名称以关键字“test”开头或结尾,然后重试。
确保您可以解压测试程序包,而不会出现错误。在以下示例中,程序包的名称为 test_bundle.zip。
-
将您的测试程序包复制到工作目录,然后运行以下命令:
$ unzip test_bundle.zip
-
成功解压缩程序包后,您可以通过运行以下命令找到工作目录树结构:
$ tree .
如果 Appium Python 包有效,你会发现
tests
工作目录内的目录。文件名可能不同,但应以test_
或者结尾为_test.py
.. |-- requirements.txt |-- test_bundle.zip |-- tests (directory) | `--
test_unittest.py
`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl有关更多信息,请参阅 Appium 测试和 AWS Device Farm。
APPIUM_PYTHON_TEST_PACKAGE_REQUIREMENTS_TXT_FILE_MISSING
如果您看到以下消息,请执行以下步骤来修复此问题。
警告
我们无法在您的测试程序包中找到 requirements.txt 文件。请解压缩您的测试程序包,验证 requirements.txt 文件位于该程序包中,然后重试。
确保您可以解压测试程序包,而不会出现错误。在以下示例中,程序包的名称为 test_bundle.zip。
-
将您的测试程序包复制到工作目录,然后运行以下命令:
$ unzip test_bundle.zip
-
成功解压缩程序包后,您可以通过运行以下命令找到工作目录树结构:
$ tree .
如果 Appium Python 包有效,你会发现
requirements.txt
工作目录中的文件。. |--
requirements.txt
|-- test_bundle.zip |-- tests (directory) | `-- test_unittest.py `-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl有关更多信息,请参阅 Appium 测试和 AWS Device Farm。
APPIUM_PYTHON_TEST_PACKAGE_INVALID_PYTEST_VERSION
如果您看到以下消息,请执行以下步骤来修复此问题。
警告
我们发现 pytest 版本低于我们支持的最低版本 2.8.0。请更改 requirements.txt 文件内的 pytest 版本,然后重试。
确保您可以解压测试程序包,而不会出现错误。在以下示例中,程序包的名称为 test_bundle.zip。
-
将您的测试程序包复制到工作目录,然后运行以下命令:
$ unzip test_bundle.zip
-
成功解压缩程序包后,您可以通过运行以下命令找到工作目录树结构:
$ tree .
你应该找到
requirements.txt
工作目录中的文件。. |--
requirements.txt
|-- test_bundle.zip |-- tests (directory) | `--test_unittest.py `-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl -
要获取 pytest 版本,您可以运行以下命令:
$ grep "pytest" requirements.txt
您应找到类似以下内容的输出:
pytest==2.9.0
它显示了 pytest 版本,在本例中为 2.9.0。如果 Appium Python 程序包有效,pytest 版本应当高于或等于 2.8.0。
有关更多信息,请参阅 Appium 测试和 AWS Device Farm。
APPIUM_PYTHON_TEST_PACKAGE_INSTALL_DEPENDENCY_WHEELS_FAILED
如果您看到以下消息,请执行以下步骤来修复此问题。
警告
我们未能安装依赖项 wheel。请解压缩您的测试程序包,打开 requirements.txt 文件和 wheelhouse 目录,并验证 requirements.txt 文件中指定的依赖项 wheel 与 wheelhouse 目录中的依赖项 wheel 完全匹配,然后重试。
我们强烈建议您为包装测试设置 Python virtualenv
$ virtualenv workspace $ cd workspace $ source bin/activate
确保您可以解压测试程序包,而不会出现错误。在以下示例中,程序包的名称为 test_bundle.zip。
-
将您的测试程序包复制到工作目录,然后运行以下命令:
$ unzip test_bundle.zip
-
要测试安装 wheel 文件,您可以运行以下命令:
$ pip install --use-wheel --no-index --find-links=./wheelhouse --requirement=./requirements.txt
有效的 Appium Python 程序包应生成类似以下内容的输出:
Ignoring indexes: https://pypi.python.org/simple Collecting Appium-Python-Client==0.20 (from -r ./requirements.txt (line 1)) Collecting py==1.4.31 (from -r ./requirements.txt (line 2)) Collecting pytest==2.9.0 (from -r ./requirements.txt (line 3)) Collecting selenium==2.52.0 (from -r ./requirements.txt (line 4)) Collecting wheel==0.26.0 (from -r ./requirements.txt (line 5)) Installing collected packages: selenium, Appium-Python-Client, py, pytest, wheel Found existing installation: wheel 0.29.0 Uninstalling wheel-0.29.0: Successfully uninstalled wheel-0.29.0 Successfully installed Appium-Python-Client-0.20 py-1.4.31 pytest-2.9.0 selenium-2.52.0 wheel-0.26.0
-
要停用虚拟环境,您可以运行以下命令:
$ deactivate
有关更多信息,请参阅 Appium 测试和 AWS Device Farm。
APPIUM_PYTHON_TEST_PACKAGE_PYTEST_COLLECT_FAILED
如果您看到以下消息,请执行以下步骤来修复此问题。
警告
我们未能在 tests 目录中收集测试。请解压缩您的测试程序包,通过运行命令 py.test --collect-only <path to your tests
directory>
验证测试程序包是否有效,然后在该命令未输出任何错误后重试。
我们强烈建议您为包装测试设置 Python virtualenv
$ virtualenv workspace $ cd workspace $ source bin/activate
确保您可以解压测试程序包,而不会出现错误。在以下示例中,程序包的名称为 test_bundle.zip。
-
将您的测试程序包复制到工作目录,然后运行以下命令:
$ unzip test_bundle.zip
-
要安装 wheel 文件,您可以运行以下命令:
$ pip install --use-wheel --no-index --find-links=./wheelhouse --requirement=./requirements.txt
-
要收集测试,您可以运行以下命令:
$ py.test --collect-only tests
有效的 Appium Python 程序包应生成类似以下内容的输出:
==================== test session starts ==================== platform darwin -- Python 2.7.11, pytest-2.9.0, py-1.4.31, pluggy-0.3.1 rootdir: /Users/zhena/Desktop/Ios/tests, inifile: collected 1 items <Module 'test_unittest.py'> <UnitTestCase 'DeviceFarmAppiumWebTests'> <TestCaseFunction 'test_devicefarm'> ==================== no tests ran in 0.11 seconds ====================
-
要停用虚拟环境,您可以运行以下命令:
$ deactivate
有关更多信息,请参阅 Appium 测试和 AWS Device Farm。
APPIUM_PYTHON_TEST_PACKAGE_DEPENDENCY_WHEELS_INSUFFICIENT
如果您看到以下消息,请执行以下步骤来修复此问题。
警告
我们无法在 wheelhouse 目录中找到足够的 wheel 依赖项。请解压缩您的测试包,然后打开 wheelhouse 目录。确认您已在 requirements.txt 文件中指定了所有 wheel 依赖项。
确保您可以解压测试程序包,而不会出现错误。在以下示例中,程序包的名称为 test_bundle.zip。
-
将您的测试程序包复制到工作目录,然后运行以下命令:
$ unzip test_bundle.zip
-
检查长度
requirements.txt
文件以及文件数量.whl
wheelhouse 目录中的依赖文件:$ cat requirements.txt | egrep "." |wc -l 12 $ ls wheelhouse/ | egrep ".+\.whl" | wc -l 11
如果数量
.whl
依赖文件小于你的非空行数requirements.txt
文件,那么你需要确保以下几点:-
有一个
.whl
与中每一行对应的依赖文件requirements.txt
文件。 -
里面没有其他行
requirements.txt
包含依赖包名称以外信息的文件。 -
没有依赖关系名称在多行中重复
requirements.txt
文件,这样文件中的两行可以对应一行.whl
依赖文件。
AWSDevice Farm 不支持
requirements.txt
与依赖包不直接对应的文件,例如为pip install
命令指定全局选项的行。有关全局选项的列表,请参阅要求文件格式。 有关更多信息,请参阅 Appium 测试和 AWS Device Farm。
-