用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的工具,并介绍其原理以
2023-06-05
自己近期做了个便民app
最近做了一个便民App,主要的原理就是通过搜集社区周边的商家信息及用户需求,将商家的信息按照类别、地区、特色、评价等多个维度来展示和搜索,方便用户快速找到所需服务商家,满足他们的各种需求。首先,我在App中搭建了一个商家信息库,包括了各种门类的商家,比如快
2023-06-05
自己开发app需要什么软件吗
开发一款手机应用程序涉及到软件和硬件两个方面,开发的软件应该具备集成开发环境(IDE)、编程语言、框架、数据库和一些工具,硬件方面需要一台电脑和一台手机或者模拟器。下面将会详细介绍一下开发应用程序所需软件。1. 集成开发环境(IDE)IDE 是“Integ
2023-06-05
自己制作英语单词的app
制作英语单词的app的原理可以简单描述为以下几步:1. 数据库设计:首先需要设计一个数据库,用于存储单词、翻译、例句、音频等相关数据。可以使用关系型数据库(如MySQL)或非关系型数据库(如MongoDB)来实现。2. 后端开发:开发后端程序,用于处理前端
2023-06-05
自动贩卖机app开发
随着科技的进步,自动贩卖机在我们的日常生活中越来越普及。为了更好地满足人们的需求和提高使用的便利性,自动贩卖机app的开发应运而生。本文将介绍自动贩卖机app的原理和开发过程。一、自动贩卖机app的原理自动贩卖机app通过智能手机与自动贩卖机的通信,实现了
2023-06-05
制作自己的app需要授权吗
在制作自己的app时需要授权的情况主要有两种,分别是操作系统平台和使用第三方服务。1. 操作系统平台授权在开发自己的app时,如果要发布到操作系统平台(如Apple App Store、Google Play Store等),就需要遵守相应平台的规定和要求
2023-06-05
怎样自己做个app
制作一个手机应用程序可以让您将您的创意带入新的高度,并与其他人分享。它可以是一个游戏,一个实用程序,一个工具,或者是与您的品牌或业务相关的应用。无论您的目的是什么,创建一个手机应用程序可能需要下面提供的步骤和技巧。第一步:选择您的平台在您开始创建应用程序之
2023-06-05
免编程自己开发外卖系统app
随着移动互联网的发展,外卖系统app在我们日常生活中越来越受欢迎。通过使用手机或平板电脑,我们可以方便地下订单,查看店铺评价和配送时间等信息。但是,如果你想开发自己的外卖系统app,但是没有编程技能,不必担心。本文将介绍一些免编程的方法来开发外卖系统app
2023-05-30
加自己制作的水印的app
随着图片的普及和分享,保护自己的图片版权显得异常重要。为了避免图片被盗用、抄袭或未经授权地使用,加上自己的水印便是一个不错的选择。而添加水印,在手机上也是一件非常方便的事情。今天我来为大家介绍一下自己制作的添加水印的App。一、添加水印的原理添加水印的原理
2023-05-30
别人的app怎么做成自己的
当你看到一个好的APP时,你会有这样的想法:这个应用真的很厉害,如果能拥有它,我就可以做出更好的东西。那么,怎么样才能让别人的APP变成自己的APP呢?下面是一些常用的方法。1. 全新开发如果你有足够的技术能力,你可以选择从头开始开发一个新的应用程序,这样
2023-05-30
uniapp 开发能自动点击的app
UniApp 是一款跨平台开发工具,它使用 Vue.js 框架来开发应用程序,能够同时开发 iOS 和 Android 系统中的应用程序,还支持H5和小程序开发。在UniApp 中,我们可以使用一些自动点击的插件进行自动化测试,比如 uiautomator
2023-05-30
onenet手机端app需要自己开发
OneNet手机端APP是OneNet平台实现物联网设备互通的一个应用程序,它致力于提供安全、稳定、高效、易用的物联网数据接入及处理服务。为满足不同客户的需求,OneNet提供了APP的开发和使用文档,可以帮助客户定制符合自己需求的APP。一、原理介绍On
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1