自动化测试 Appium之Python运行环境搭建 Part2

简介: 自动化测试 Appium之Python运行环境搭建 Part2

Appium之Python运行环境搭建 Part2


实践环境

参见 Appium之Python运行环境搭建 Part1

 

环境部署

1、安装Android SDK

安装好后,配置ANDROID_HOME环境变量,设置为Android SDK安装路径(例中:D:\Program Files (x86)\Android\android-sdk)

 

2、安装其它SDK相关软件包

安装好Android SDK后,选择打开Android SDK Manager(在Android SDK目录下,例中D:\Program Files (x86)\Android\android-sdk)

 

 

 

选好后点击 接受协议Accept License,Install

 

 

参考链接:

https://www.zhihu.com/question/31935836

http://www.cnblogs.com/kangjianwei101/p/5621238.html

 

3、安装appium-uiautomator2-driver

cmd打开控制台,输入以下命令安装

> npm install -g appium-uiautomator2-driver

 

参考链接:

http://appium.io/docs/en/drivers/android-uiautomator2/index.html

https://github.com/appium/appium-uiautomator2-driver

 

4、开启appium、appium-desktop(如果没有开启的话)

 

其它准备工作

开启手机(模拟器)USB调试模式

 

打开目标程序主页,比如图示计算机

 

 

 

获取APK包名及资源定位器

双击打开android_sdk_install_home\tools\uiautomatorviewer.bat

(例中:D:\Program Files (x86)\Android\android-sdk\tools\uiautomatorviewer.bat

点选图示圈选按钮中任何一个

 

 

 

如上图,鼠标移动到目标控件,比如数字按钮7,可看到程序所在包名:package 为com.android.calculator2,数字按钮7对应资源IDpackage 为com.android.calculator2:id/digit_7

 

 

活动名称获取

通过adb logcat > log.txt 获取的

 

代码测试

#!/usr/bin/env python
# -*- encoding:utf-8 -*-

__author__ = 'laifuyu'

import time

from appium import  webdriver


if __name__ == '__main__':

   desired_caps = {

       "platformName":"Android",

       "platformVersion":"5.0",

       "deviceName":"Android Emulator",

       "automationName":"UiAutomator2",

       # "app":"D:\\apks\\ai-sorting_v3.5.5_sit_debug_20180423114313.apk",
       "appPackage":"com.android.calculator2",

       "appActivity":".Calculator"
   }


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

   digit7 = driver.find_element_by_id('com.android.calculator2:id/digit_7')

   digit7.click()


   result = driver.find_element_by_id('com.android.calculator2:id/result')

   result.send_keys('+')


   time.sleep(30)


   driver.quit()

运行结果:

 

 

说明:

platformName  设置手机操作系统平台(iOS, Android, FirefoxOS)

 

platformVersion  设置手机操作系统版本

 

deviceName    设置手机设备、模拟器类型。比如iPhone Simulator, iPad Simulator, iPhone Retina 4-inch, Android Emulator, Galaxy S4, 等,IOS操作系统上,该设备名必须是通过instruments -s devices命令返回的合法设备。对于Android操作系统来说,该属性虽然是必填,但是缺是被忽视的。

automationName  设置使用哪个自动化引擎。对于Android:Appium(默认)、Selendroid 、UiAutomator2 、对于IOS:XCUITest

 

app:设置apk软件包的绝对路径,或者.ipa ios包的http url,或者是一个包含一个.ipa、.apk软件包的.zip文件绝对路径。注意,似乎是这样的,如果手机设备、手机模拟器上没安装该软件包,则可设置该属性,运行时,会自动把该安装包安装到手机设备、模拟器上。 Appium会先尝试把这个app二进制文件安装到手机设备或者模拟器中。 注意,如果指定了appPackage和appActivity属性,则该可以不设置该属性。

eg:

/abs/path/to/my.apk

http://myapp.com/app.ipa

       

appPackage:设置Android app JAVA软件包

appActivity:想启动的Android activity名称。通常需要加前缀. 比如.MainActivity而不是MainActivity。

eg:

MainActivity

.Settings

 

参考链接:

https://github.com/appium/appium-uiautomator2-driver/blob/master/README.md

https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md

https://github.com/appium/sample-code/blob/master/sample-code/examples/python/android_contacts.py

https://blog.csdn.net/xyz846/article/details/50750701

 

 

 

目录
相关文章
|
2月前
|
安全 Linux 网络安全
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(一)
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(一)
63 2
|
2月前
|
Python Windows 网络安全
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(二)
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(二)
64 2
|
22天前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
66 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
2月前
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
2月前
|
测试技术 Python
自动化测试项目学习笔记(一):unittest简单运行(初始化,清除,设置测试行为)
本文介绍了Python的unittest框架的基础用法,包括测试初始化(setup)、清除(tearDown)函数的使用,以及assertEqual和assertGreaterEqual等断言方法,并展示了如何创建测试用例,强调了测试函数需以test_开头才能被运行。
64 1
自动化测试项目学习笔记(一):unittest简单运行(初始化,清除,设置测试行为)
|
1月前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
自动化测试与脚本编写:Python实践指南
29 1
|
2月前
|
Shell 开发者 iOS开发
Python 环境搭建之 conda
本文介绍了Python项目管理工具Conda的两种版本——Anaconda和Miniconda的安装方法及环境使用,特别针对MacOS系统。Anaconda为全量版,适合新手;Miniconda则为轻量级版本,适合有经验的开发者。文中还提供了具体的安装命令和路径说明,帮助用户顺利完成安装并验证安装结果。
Python 环境搭建之 conda
|
24天前
|
Web App开发 测试技术 数据安全/隐私保护
自动化测试的魔法:使用Python进行Web应用测试
【10月更文挑战第32天】本文将带你走进自动化测试的世界,通过Python和Selenium库的力量,展示如何轻松对Web应用进行自动化测试。我们将一起探索编写简单而强大的测试脚本的秘诀,并理解如何利用这些脚本来确保我们的软件质量。无论你是测试新手还是希望提升自动化测试技能的开发者,这篇文章都将为你打开一扇门,让你看到自动化测试不仅可行,而且充满乐趣。
|
2月前
|
Java 编译器 Go
Python学习笔记--- day01计算机基础和环境搭建(一)
Python学习笔记--- day01计算机基础和环境搭建(一)
43 2
|
2月前
|
程序员 编译器 Python
Python学习笔记--- day01计算机基础和环境搭建(二)
Python学习笔记--- day01计算机基础和环境搭建(二)
48 1