Android自动化测试流程

前言

现在基本上项目没有一个完整而且自动化的测试流程,所以总会出现一些低级的,重复的错误。所以需要一个完整完善的自动化测试流程。

Uiautomator2+Pytest+Allure

uiautomator2 是一个Android UI自动化框架,支持Python编写测试脚本对设备进行自动化。底层基于Google uiautomator。

特点:

  • 基于uiautomator的模拟点击,触摸事件等
  • 集成模拟输入法输入
  • 集成到网页端的控制
  • 可以不基于app做独立控制,运行流畅
  • 可以通过局域网wifi实现并发测试

限制:

  • 需要python语言基础

pytest
一个测试的框架

allure
测试报告的输出,具体使用请看官方文档

环境搭建

官方Git
请自行安装python
新建一个测试目录,cd进去,在执行下面的命令
准备Python虚拟环境 Virtualenv

1
2
3
4
5
6
7
8
pip install virtualenv
virtualenv venv

# Linux or Mac
. venv/bin/activate

# Windows
venv\Scripts\activate.bat

安装相关的python库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
pip install pytest==3.7
pip install --upgrade --pre uiautomator2
pip install pillow
brew install allure
# 注意,pytest-allure-adaptor已经不在维护了,所以我们使用allure-pytest,并且allure-pytest不能与pytest-allure-adaptor同时存在
# pip install pytest-allure-adaptor
pip install allure-pytest

# init 所有的已经连接到电脑的设备
python -m uiautomator2 init

# 安装webeditor
pip install --pre --upgrade weditor
# 启动编辑器
python -m weditor

# 失败重试
pip install pytest-rerunfailures

新建一个文件,进行简单测试
main.py

1
2
3
4
5
6
7
8
9
10
def inc(x):
return x + 1


def test_answer():
assert inc(3) == 5


def test_answer2():
assert inc(4) == 5

命令行执行:
pytest main.py --alluredir=testreport/
之后会在同目录生成一个testreport文件夹
allure serve testreport/

如图所示:
-w1438

fixture

fixture作为pytest的精华所在,需要单独的说一下。如果有java的aop基础,那么就很好了解了。其实fixture就是AOP,AOP可以在一个方法执行前后增加一下代码逻辑达到无痛植入。例如日常统计,debug等,而fixture同理。

我能用它做什么?

每次测试之前,需要清理测试环境,需要检查app的情况。例如解锁手机、清除app数据缓存、打开app、每次测试之后需要关闭app等等操作,都可以通过fixture来实现。

-------------本文结束感谢您的阅读-------------
您的支持将是我最大的动力