用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开发平台开发的app归属权
自助式app开发平台,指的是一类提供开发工具和服务的平台,旨在帮助个人或小团队开发者自主完成应用程序的开发和上线。这类平台通常提供了一系列的模板、组件、函数库、接口等工具,让开发者能够快速地完成app开发的各个环节,包括设计、编码、测试、发布等。那么,在这
2023-06-05
自由职业者app定制开发
自由职业者,是指那些不受雇于任何公司的独立职业者,他们可以选择自己的工作内容、时间和地点。由于自由职业者和传统雇员的工作方式不同,所以自由职业者app应运而生。在这篇文章中,我们将会深入介绍关于自由职业者app定制开发的原理和必要的方面。一、自由职业者ap
2023-06-05
自己做的小app上线
做一个小APP并上线并不是一个特别困难的过程,只需要有一些编程知识和一些必要的工具即可。本文将介绍做一个小APP的步骤和需要的工具,帮助初学者能够实现自己的小想法。第一步:确定APP的目的和功能在开发APP之前,我们必须明确它的目的和功能。我们需要问自己几
2023-06-05
自己做的app运作收费一年多少钱
制作一款APP需要投入时间和金钱,而APP的运作收费也是需要考虑的一项费用。运作收费包括服务器租用费用、云存储费用、推广费用等。下面将介绍APP运作收费的原理及详细介绍。一、服务器租用费用服务器是APP运行的基础,它能够为用户提供稳定的服务,保证APP的正
2023-06-05
自主开发app需要些什么
自主开发app需要考虑很多方面。下面我们就来从应用程序设计的理念、功能模块、技能需求和开发流程四个方面,详细介绍自主开发app的基本要素。一、应用程序设计的理念应用程序的设计理念包括应用程序开发的目的、应用程序的特点、用户体验和可用性等因素。最基本的是理解
2023-06-05
自己如何开发数据接收app
开发数据接收app的原理:数据接收app,简单来说就是一个app可以实现接收其他数据源的数据,然后把这些数据单独展示出来,或者和其他数据源进行整合分析。要开发数据接收app,需要以下工作:1.明确数据源:开发数据接收app前需要明确数据的来源,可以从传感器
2023-06-05
自己如何制作手机app
制作手机应用程序,或者说是APP,是一项需要一定技术和知识的工作。下面,我将介绍一些制作手机APP的原理和步骤,帮助那些想自己制作APP的人入门。首先,我们需要了解一些基本知识,例如所采用的开发语言,不同平台的开发环境等。根据用户所需要制作的APP的类型和
2023-06-05
阅读app怎么自己制作书源网站
阅读app是一个让用户可以从多个源获取书籍的阅读应用。如果您想要访问一个未曾被支持的站点,您需要制作自己的书源。这篇文章将为您介绍制作书源的原理和详细步骤。一、书源原理书源可以理解为一个源代码。和编写一个网站的源代码一样,书源代码也需要您了解一些专业知识和
2023-06-05
有自建app需求
随着智能手机的普及和移动互联网的快速发展,移动应用程序(Mobile Application)已经成为人们日常生活中不可或缺的一部分。无论是购物、社交、娱乐、学习还是工作,我们都可以通过手机应用轻松完成。而对于一些企业或个人来说,拥有一个符合自身需求的自建
2023-06-05
前端自己做一个app怎样找素材库
如果你是一名前端开发者,想要自己制作一个app,你需要找到一些素材库,以便在你的app中使用图片、图标、字体等元素。在这篇文章中,我将分享一些关于如何寻找素材库的原理和详细介绍。首先,你需要明确你需要哪些素材,比如图片、图标、字体等。这些素材应该与你的ap
2023-05-30
国外哪些自己做app
随着智能手机和移动互联网的普及,越来越多的人开始尝试自己做APP,以满足自己的需要,或者创造商业机会。以下是一些国外的自己做APP的方式和介绍:1. AppMakrAppMakr是一款简单易用的APP制作工具,可以帮助企业、媒体和个人快速制作APP。用户只
2023-05-30
app自主开发平台有什么问题嘛
APP自主开发平台(或称企业级APP开发平台)是指企业或个人通过使用特定的软件或服务,自主设计、开发和上线自己的移动应用程序(APP)的平台。相较于委托第三方进行开发,自主开发APP平台的优势在于可以更好地掌控开发进程、保护知识产权和降低开发成本。然而,A
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1