用python开发安卓自动化app

自动化测试可以提高软件的质量和效率,而移动自动化测试在移动互联网时代更加重要,因为它可以在各种设备上完全自动执行测试案例,从而提高测试覆盖率和减少测试周期。本文将介绍如何使用Python开发一个基于appium框架的Android自动化测试App。

## 前置条件

- Python3.6或更高版本

- 安装Android Studio和JDK

- 安装appium或appium desktop客户端

- 安装adb(Android Debug Bridge)

## 环境搭建

### 配置Python和所需模块

1. 安装pip包管理程序

在终端中输入以下命令:

```shell

sudo apt-get install python3-pip

```

2. 安装所需模块

```shell

pip3 install Appium-Python-Client

pip3 install pytest

pip3 install allure-pytest

```

### 配置Android Studio

1. 下载并安装Android Studio及相关配置

2. 安装Android SDK

在Android Studio中打开SDK Manager,选择需要的Android版本和API Level,安装并启动。

### 配置appium或appium desktop

1. 安装appium或appium desktop

appium:在终端中输入以下命令安装:

```shell

npm install -g appium

```

如果你安装了appium desktop软件,可以直接打开来代替appium。

2. 启动appium或appium desktop

appium:在终端中输入以下命令来启动appium:

```shell

appium

```

appium desktop:打开软件并点击“Start Server”按钮,等待软件启动。

## 编写测试脚本

### 第一步:启动APP

为了启动APP,我们需要连接设备并打开APP。以下是一段简单的python代码,示范如何启动APP:

```python

from appium import webdriver

# 设备连接参数

desired_caps = {}

desired_caps['platformName'] = 'Android'

desired_caps['platformVersion'] = '5.0.1'

desired_caps['deviceName'] = 'xxx'

desired_caps['appPackage'] = 'com.android.example'

desired_caps['appActivity'] = '.MainActivity'

# 启动APP

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

```

这段代码使用了webdriver模块连接设备,并启动了指定的APP。

### 第二步:编写测试案例

为了测试应用程序的各种功能,我们需要编写测试案例。后续代码示例是在测试APP登录界面验证登录功能。

```python

# coding:utf-8

import time

import pytest

from appium import webdriver

from appium.webdriver.common.touch_action import TouchAction

from appium.webdriver.common.multi_action import MultiAction

class TestLogin(object):

@classmethod

def setup_class(cls):

# 设备连接参数

desired_caps = {}

desired_caps['platformName'] = 'Android'

desired_caps['platformVersion'] = '5.0.1'

desired_caps['deviceName'] = 'xxx'

desired_caps['appPackage'] = 'com.android.example'

desired_caps['appActivity'] = '.MainActivity'

# 启动APP

cls.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

@classmethod

def teardown_class(cls):

cls.driver.quit()

@pytest.mark.parametrize("uname,password,expection", [("admin1","password1","输入错误")])

def test_login(self,uname,password,expection):

self.screenshot("登录界面")

self.driver.find_element_by_id("username").send_keys(uname)

self.screenshot("输入用户名")

self.driver.find_element_by_id("password").send_keys(password)

self.screenshot("输入密码")

action = TouchAction(self.driver)

action.tap(x=350, y=800).perform()

self.screenshot("点击登录")

time.sleep(5)

if expection == "输入错误":

text = self.driver.find_element_by_id("result").text

assert "输入错误" in text

def screenshot(self, img_name):

self.driver.get_screenshot_as_file("{}/{}.png".format("screenshot", img_name))

```

这个测试类包含了一个测试用例,该测试用例使用pytest.mark.parametrize()从数据表中读取多组测试数据,包括用户名,密码和预期结果,然后使用Appium-Python-Client的API发送相应的输入和触摸事件来执行测试,最后用assert在预期结果和实际结果上进行比较。

### 第三步:测试框架

使用pytest,并且安装allure-pytest来生成测试报告,执行以下命令来执行测试案例:

```shell

pytest --alluredir=allure_report/

```

### 第四步:生成测试报告

执行以下命令来生成测试报告:

```shell

allure generate ./allure_report/ -o ./allure_result/ --clean

```

运行上面的命令后,将在allure_result目录中生成一个report.html文件,打开文件可以查看测试报告。

## 总结

使用Python可以轻松开发Android自动化测试App,其中使用的测试框架可以根据个人喜好和需要进行选择。除了appium框架之外,还可以使用Flutter框架中的flutter_driver和dart语言开发移动自动化测试。无论使用何种开发工具和框架,自动化测试都可以提高测试质量和效率,从而为软件开发提供更好的支持。


相关知识:
自做仓库管理app
仓库管理是一个涉及物流、库存、销售等多个环节的复杂过程,而一个高效的仓库管理系统可以极大地提升物资的出入库效率,减少误差和损失,并提高仓库操作人员的工作效率。在如今的数字化时代,越来越多的企业开始将仓库管理数字化,实现信息化、网络化和智能化,以更好地应对市
2023-06-05
自建题库 app
随着移动互联网的普及,APP应用变得越来越普遍,一些教育培训的机构,或者是某个领域的知识专家,也开始逐渐关注APP应用的开发。如果你是一名教育工作者或是某个领域的知识专家,那么你或许会考虑开发一个自己的题库APP,被人们所喜爱,受欢迎的APP应用。下面笔者
2023-06-05
自建电脑软件app推荐免费
自建电脑软件app是一种非常有趣和有用的技能。它允许你设计和构建自己的应用程序,这些应用程序可以完全适应你的需求和偏好。这篇文章将介绍两种流行的自建电脑软件app的方式,分别是使用编程语言和使用程序生成器。使用编程语言使用编程语言构建自己的应用程序需要一些
2023-06-05
自己做app需要投资多少
在现代社会,移动互联网已经成为人们生活的重要组成部分。随着智能手机的普及和移动互联网的普及,人们已经离不开各种app。因此,有些人对自己开发一款app产生了兴趣,但是投资成本是很大的问题。这篇文章将介绍自己开发一款app需要投资多少。首先,开发app的费用
2023-06-05
自己开发一个app可以吗知乎
自己开发一个app是完全可以的。目前,移动互联网早已经成为各个行业的重要载体,而移动应用程序(app)已经成为人们生活中不可或缺的一部分。因此,对于想要开发自己的app的人来说,了解一些基本的原理和技巧非常必要。首先,要开发一个app,你需要掌握一些基本的
2023-06-05
用平台上模板自己做的app版权归谁
当一个人使用平台上的模板来制作自己的app时,他使用的模板的版权归属问题与使用情景等因素有关。目前市场上有许多提供app模板的平台,这些平台可以根据用户需求提供各种不同类型的模板,比如游戏、社交、工具等等。对于这些平台提供的模板,通常情况下,版权都属于平台
2023-06-05
物联app开发自学教程
物联网是指通过各种现代通信技术将日常用品、食品、器具、工具等连接到互联网上,并实现智能交互和自动化控制。物联网技术可以强化日常用品和设备的功能,让我们的生活更加便利、节约,甚至提高安全性等多个方面的要求。而物联网应用则是通过一些终端设备进行控制、协议设计、
2023-05-31
手机app 做海报设计自制
现在有很多人都需要制作一些海报,比如说商家需要制作打折促销的海报,还有参加活动的人需要制作活动通告等等。那么,如何快速便捷地制作一张美观的海报呢?手机app就是一个非常好的选择。手机app可以在手机端提供一些制图工具,用户可以快速简单的使用这些工具来制作海
2023-05-31
那你自己做漫画的app有哪些
目前市面上有许多可以用于制作漫画的App,下面我来介绍一些比较常用的:1. 【ibisPaint X】ibisPaint X是一款非常强大的漫画绘图软件,旨在提供一种快捷而优秀的绘画体验。它可以在Android、iOS和Windows设备上使用。该应用程序
2023-05-30
可以自己做桌宠的手机app
桌宠是一种常见的电脑应用程序,它在用户电脑桌面上显示一个可爱的动态角色。但近年来,随着移动设备的普及,桌宠也逐渐出现在手机APP市场上。如果你有兴趣,可以自己开发一个桌宠手机APP。下面是一些原理和详细介绍。一、实现原理实现一个桌宠APP的原理比较简单,主
2023-05-30
不懂编程也能自己制作app
现在,在这个数字化和信息化的世界中,手机App已经成为了人们生活不可缺少的一部分。有很多商业公司和个人想要自己开发一个App,但往往由于缺乏编程知识而无从下手。如果你也有这个想法,但缺乏编程知识又不希望花费大量的金钱请专业的开发者开发,那么这篇文章就适合你
2023-05-30
app小程序自助制作
随着移动互联网的发展,越来越多的企业和个人开始认识到移动互联网的重要性,而app和小程序则成为重要的移动互联网应用形式。但是,缺乏技术知识的人员想要开发自己的app或小程序,往往需要找专业团队来完成。这个过程不仅耗时,还需要花费较高的费用。因此,自助制作a
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1