用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。下面我们来介绍几个比较常用的工具。1. Appy PieAppy Pie是全球领先的无代码应用开发平台,它提
2023-06-05
做个自己公司锁客app成本多少钱
开发一款公司锁客app需要考虑的因素有很多,包括功能、技术、设计、测试等等。成本也因此而异,下面将详细介绍开发公司锁客app的成本和原理。一、功能需求公司锁客app需要具备哪些功能,不同的功能会影响开发成本。基本功能包括管理锁的状态、授权锁的使用权、限制授
2023-06-05
自已制作app
制作自己的App可能听起来像是一个巨大并且困难的任务,但实际上,随着当前市场上出现了各种各样的app制作工具,这项任务已经变得越来越容易。本文将为你介绍一些制作自己的App的原理和方法。1. 确定您的应用目的在开始制作应用程序之前,您应该先确定该应用程序的
2023-06-05
自己做衣服的app
自己做衣服的APP是一个结合了服装DIY和社交交流的应用程序,让用户可以通过手机APP学习服装设计、打样、裁剪、缝制等技能,同时也可以与其他用户互动分享自己的创意设计。这种APP可通过文字、图片、视频等多种形式展现服装DIY的过程,让初学者轻松入门DIY服
2023-06-05
自己做代练软件app
代练软件APP指的是一种通过软件平台来帮助游戏玩家完成游戏代练的工具。自己做代练软件APP需要掌握一定的编程知识和技巧,下面将从原理和详细介绍两个方面进行阐述。一、原理代练软件APP的原理基于游戏玩家的需求,通过平台提供的服务和专业的代练人员实现代练过程。
2023-06-05
自己开发一个扫描文字app
近年来,计算机视觉技术不断发展,从而催生出了一系列优秀的文字识别技术,如OCR(光学字符识别技术),实现了对印刷体文字的高效准确解构。而在移动互联网时代,为了方便用户更好地获取信息,开发一款能够扫描并识别文字的APP,是非常有益的。下面是自己开发一个扫描文
2023-06-05
自己开发app转账要手续费吗
在移动互联网时代的今天,APP已成为人们日常生活中不可或缺的一部分。其中,转账类APP更是使用频率较高的一种类型。对于想要自己开发转账类APP的开发者或是用户,常常会关注手续费的问题。那么,自己开发APP转账是否需要手续费呢?下文就针对这一问题进行详细介绍
2023-06-05
自己制作的app怎样出售
自己制作的app出售,需要经过多个步骤和流程。下面将介绍详细的出售流程及相关注意事项。1. 确定出售平台市场上主要有两种出售平台,一种是App Store,另一种是Google Play。通过这两种平台,可以将自己制作的app出售给全世界范围内的用户。在选
2023-06-05
怎么在应用商店发布自己做的app
在如今移动互联网时代,应用程序(app)已成为了人们生活不可或缺的一部分,无论是在工作、娱乐还是学习中,我们都需要使用各种各样的应用程序。正因如此,开发者们也开始越来越关注如何将自己开发的应用程序发布到应用商店上,从而让更多的用户能够使用到自己的应用程序。
2023-06-05
手机如何自己开发软件app
开发手机应用软件(app)的过程需要掌握一定的编程技能和工具,以及各种程序语言。下面是一个简单的开发app的步骤和具体技术。第一步:确定app类型和功能首先,你需要确定你要开发的应用软件的类型和功能,以便开始开发。你可以利用市场调查、用户反馈、竞争对手分析
2023-05-31
手机自建题库app
手机自建题库app是一种可以在手机上方便地自建个人题库的应用程序。这种题库可以包含用户自己的题目,也可以包含其他人的题目,以及包括多种不同的题型、知识点和难度等级。下面将详细介绍手机自建题库app的原理和使用方法。手机自建题库app的原理手机自建题库app
2023-05-31
如何给手机开发自己的app
手机APP的流行已经成为一种时尚和趋势。无论是对于企业还是个人而言,开发自己的手机APP已经成为必不可少的工具,这样才能满足客户的需求并赢得越来越多的用户。本文将介绍给初学者讲述开发手机APP的原理和详细步骤。一、准备在开始开发APP之前,需要进行一些准备
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1