使用 uiautomator2+pytest+allure Android 的 UI 自动化测试踩坑记录

Python 3.7.X环境

1. No module named 'yaml'
pip install pyyaml

2. No module named cv2
pip install opencv-python

3. No module named 'allure_commons'
pip install allure-python-commons

4. NameError: name 'reload' is not defined

python2解决办法:

import sys
reload(sys)
sys.setdefaultencoding(‘utf-8’)

python3解决办法:

import importlib,sys
importlib.reload(sys)
使用 uiautomator2+pytest+allure Android 的 UI 自动化测试踩坑记录_第1张图片

说明:
在python2.x中由于str和byte之间没有明显区别,经常要依赖于defaultencoding来做转换。
在python3.X中有了明确的str和byte类型区别,从一种类型转换成另一种类型要显式指定encoding

5. module 'sys' has no attribute 'setdefaultencoding'
python3.X字符串默认编码unicode, 所以sys.setdefaultencoding也不存在了,所以注释掉即可:

使用 uiautomator2+pytest+allure Android 的 UI 自动化测试踩坑记录_第2张图片

4和5的报错后面还会出现,用同样的方式修改即可。

6. python3 print.format用法错误

原因:python3 print.format用法 https://blog.csdn.net/u012149181/article/details/78965472
解决方法:
print('创建截图目录:{}'.format(screenshot_folder))

7. module 'pytest' has no attribute 'allure'
解决方法:

pip uninstall pytest-allure-adaptor
pip install allure-pytest

8. No module named 'base'

原因:项目目录如下:

使用 uiautomator2+pytest+allure Android 的 UI 自动化测试踩坑记录_第3张图片

解决方法:
将home.py ,login.py ,news.py 和push.py中的:
from base import Base
改为:
from android.module.base import Base

9. No module named 'keyconfig'
发现这个根本就没用到,直接注视掉:

使用 uiautomator2+pytest+allure Android 的 UI 自动化测试踩坑记录_第4张图片

你可能感兴趣的:(使用 uiautomator2+pytest+allure Android 的 UI 自动化测试踩坑记录)