用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,主要需要考虑以下几个方面:1.功能设计首先,需要考虑用户对这个app的需求。比如,用户需要哪些功能?这个app需要有哪些界面?比如可以包括课程介绍、师资力量、校园环境、校园活动等等。开发者可以提前对目标用户进行市场调研,了解用户的需求和
2023-06-05
自己做优惠券的app
优惠券是一种受消费者青睐的促销方式,打折、满减、送礼等各种形式的优惠券活动都能够促进消费者消费,增加企业的销售额。随着智能手机和移动支付的普及,越来越多的企业开始将优惠券的发放和管理移植到了移动端的应用上。下面,我们来介绍一下如何自己制作优惠券的App。1
2023-06-05
自己做app需要学什么
自己做App需要学习许多技能和知识,其中包括编程语言、软件开发工具、文档阅读能力等。下面将详细介绍。1. 编程语言编程语言是开发App不可避免的一项基础。现阶段被广泛使用的编程语言包括Java、Swift、Objective-C、JavaScript等。J
2023-06-05
自学编程做app需要什么知识
自学编程进行app开发需要掌握以下几个方面的知识:1. 编程语言app开发需要掌握至少一门编程语言,如Java、Swift、Objective-C、Kotlin、Python等。其中,Java、Swift、Objective-C是开发Android、iOS
2023-06-05
自己怎么开发外卖app
外卖APP已经成为现代人生活中必不可少的一部分,这也促使越来越多的人开始关注如何开发一个属于自己的外卖APP。其中涉及到了很多方面的知识和技能,包括程序语言、数据库、云服务器等等,下面将详细介绍如何开发一个外卖APP。首先,我们需要准备的工具和技术包括:A
2023-06-05
制作自我介绍的app软件
假设你是一名软件开发者,你正在考虑开发一款自我介绍的app软件,那么该如何开发呢?第一步:市场定位在开发一个app软件之前,首先要考虑的是市场定位。你需要明确你的产品面向的用户群体是谁,他们有什么需求。针对自我介绍这个话题,我们可以定位为一款面向求职者的工
2023-06-05
怎么自学app开发
APP开发作为一种新兴技术,吸引了众多开发者的关注和青睐。想要自学APP开发,需要了解APP开发的原理和相关技术知识,掌握一定的编程能力和相关工具的使用,下面我会为您详细介绍APP开发的基本原理和自学方法。一、APP开发的基本原理APP,全称为应用程序,是
2023-06-05
怎么知道自己开发的app的权限
在 Android 系统中,应用程序所需要访问的资源 (如相机、通讯录、存储、麦克风等) 都是通过权限来表示的。在 Android 的权限系统中,每一种权限都代表一个应用的操作权限,需要在应用中明确地向用户申请,以保护用户的隐私和保证系统安全。当应用程序需
2023-06-05
我自己做了一款app直播软件
近几年,随着移动互联网的普及,直播行业也越来越火热。越来越多的人选择自己开发一款直播软件,以期挖掘出直播行业的巨大商业价值。本篇文章将介绍如何自己做一款app直播软件。一、直播原理前置知识:1. RTMP2. H. 2643. AAC4. RTSP在开始之
2023-05-31
淘客需要自己做个app 吗是真的吗
淘客需要自己做个app的说法并不是完全准确的,但确实存在一些情况下,淘客需要开发自己的APP。下面我们来详细介绍一下:什么是淘客?淘客,即淘宝客,在淘宝、天猫等电商平台上推广商品,获取佣金提成的人。淘客可以通过QQ、微信、微博等社交平台分享自己的优惠券、购
2023-05-31
免费自建app有用吗
随着智能手机的普及和移动互联网的快速发展,移动应用程序(App)成为人们生活中必不可少的一部分,各种类型的App层出不穷。但是,有些人可能会想尝试自建App。在互联网上,一些免费提供自建App的平台不断出现。那么,免费自建App真的有效吗?本文将为您介绍自
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1