Appium+Python移动端(Android)自动化测试环境搭建原来没有那么难!+ 带你实战去

Appium 是一个移动端的自动化框架,可用于测试原生应用,移动网页应用和混合型应 用,且是跨平台的。可用于 ios 和 Android 操作系统。

Appium+Python

  • 一、前提
    • 1.1 JDK安装及其配置环境变量
    • 1.2 Android-SDK 安装
    • 1.3 Node.js 安装
    • 1.4 Appium 客户端安装
    • 1.5 python安装及其配置环境变量
    • 1.6 pycharm安装
    • 1.7 安装python库Appium-Python-Client
  • 二、实战
    • 2.1点击某个事件
    • 2.2点击某组元素的某个事件
    • 2.3一组定位方式补充
    • 2.4一个定位方式补充

一、前提

1.1 JDK安装及其配置环境变量

下载安装配置也就是基本的(应该都会)

测试是否配置好 ,在cmd下输入(下同)

java -version

在这里插入图片描述

1.2 Android-SDK 安装

这个直接在Android Studio里面就有

测试是否配置好

adb --version

在这里插入图片描述

1.3 Node.js 安装

node.js官网下载:https://nodejs.org/en/
测试,进入node.js的安装路径,输入

node --version

在这里插入图片描述

1.4 Appium 客户端安装

除了以上 jdk 和 Android-sdk 环境,我们使用 Appium 和 python 来进行自动化测试,还 需要安装两个东西,一个是Appium 的客户端,一个是 Appium-python 库。这两个需要安装的东西在加上手机就可以进行自动化测试,它们之间的关系是:python 代码>Appium-python 库>Appium->手机。

appium-desktop 下载地址:https://github.com/appium/appium-desktop/releases
(这个软件有点大,我上传了一个到百度网盘里面
链接:https://pan.baidu.com/s/1WlaYoifeRGIF1Yc02deScQ
提取码:wp4l )

下载下来之后右键管理员身份打开,打开之后选择为使用这台电脑的任何人安装(所有用户),安装之后的默认路径是C:\Program Files\Appium

记得配置环境变量,如下
在这里插入图片描述

默认Host和Port,在python中写好代码要运行之前就点击Start Server v1.18.0
在这里插入图片描述

1.5 python安装及其配置环境变量

测试是否配置好

python

在这里插入图片描述

1.6 pycharm安装

官网:https://www.jetbrains.com/pycharm/download/#section=windows
下载一个社区版就可以了哈哈哈

1.7 安装python库Appium-Python-Client

打开cmd,输入

pip install Appium-Python-Client

二、实战

  1. 开启模拟器(我的是直接用的Android Studio的模拟器,所以在开启模拟器之前我还要开启Android Studio)
  2. 打开appium服务器
  3. 打开pycharm
  4. 打开cmd
  5. 打开uiautomatorviewer(在SDK目录下)()

2.1点击某个事件

打开pycharm,新建一个py文件,输入代码

from appium import webdriver
import time
desired_caps=dict()
desired_caps['platformName']='Android'#平台的名字,不区分大小写,“Android”;“ios”
desired_caps['platformVersion']='5.0'#平台的版本,可以不写后续版本号
desired_caps['deviceName']='emulator-5554'#设备的名字,不能为空
desired_caps['appPackage']='com.google.android.apps.messaging' #要打开的应用程序包名
desired_caps['appActivity']='.ui.ConversationListActivity'#要打开的应用程序的界面名
desired_caps['udid']='emulator-5554'#连接设备的唯一标识
driver=webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)#连接 appium 服务器driver.start_activity("com.google.android.apps.messaging", ".ui.ConversationListActivity") #包名(前面是包名,后面是界面名)
driver.find_element_by_id("com.google.android.apps.messaging:id/start_new_conversation_button").click() #点击事件
time.sleep(3)
driver.quit()

注意:(运行前提是你的Android Studio中的模拟器开启了、appium服务器也开启了)
第六行设备名字查询:cmd 之后输入

adb devices

在这里插入图片描述
第7行、第8行:要打开的应用程序包名、要打开的应用程序的界面名

找到你想要测试的程序,事先在模拟器中打开这个程序

cmd下输入

adb shell dumpsys window | findstr mCurrentFocus

回车之后就可以看到你想测试的程序的包名和界面名(界面名可以省略包名,但是.点不可以省略)
在这里插入图片描述
如何查找点击事件的特定id???(第13行)

cmd打开uiautomatorviewer

如果没有添加到环境变量的话就去sdk目录下找到uiautomatorviewer.bat
在Android Studio中第一行找到file——>Settings
在这里插入图片描述
点击模拟器,在uiautomatorviewer找到resource-id,这个id是每个点击事件特有的。
在这里插入图片描述
点击1,在点击你想要操作的事件2,就可以看到id了
在这里插入图片描述

运行python代码之后模拟器就会自动开启这个程序啦!

2.2点击某组元素的某个事件

这个其实是通过索引来的

见代码

from appium import webdriver
import time
desired_caps=dict()
desired_caps['platformName']='Android'#平台的名字,不区分大小写,“Android”;“ios”
desired_caps['platformVersion']='5.0'#平台的版本,可以不写后续版本号
desired_caps['deviceName']='emulator-5554'#设备的名字,不能为空
# desired_caps['appPackage']='com.google.android.apps.messaging' #要打开的应用程序包名
# desired_caps['appActivity']='.ui.ConversationListActivity'#要打开的应用程序的界面名
desired_caps['udid']='emulator-5554'#连接设备的唯一标识
driver=webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)#连接 appium 服务器# driver.start_activity("com.google.android.apps.messaging", ".ui.ConversationListActivity") #包名(前面是包名,后面是界面名)
# driver.find_element_by_id("com.google.android.apps.messaging:id/start_new_conversation_button").click() #点击事件
# time.sleep(3)
# driver.quit()#如何定位一组元素,比如说我要打开设置的第三个选项
driver.start_activity("com.android.settings",".Settings") #包名(前面是包名,后面是界面名)
A=driver.find_elements_by_class_name("android.widget.LinearLayout")  #类名(记住类名要一样,自己试试)
A[6].click()
time.sleep(5)
driver.quit()

里面的class_name也是通过uiautomatorviewer去看的,比如我我要打开Connected devices这个选项,它的索引为6(第21行代码),就会自动打开了
在这里插入图片描述

https://blog.csdn.net/hanhanwanghaha一个超级无敌可爱的人鸭 欢迎您的关注!
欢迎关注微信公众号:宝藏女孩的成长日记
如有转载,请注明出处(如不注明,盗者必究)

2.3一组定位方式补充

通过class_name(类名)定位一组元素

find_elements_by_class_name("class_name")

通过id定位一组元素

driver.find_elements_by_id("id_name")

通过xpath定位一组元素

driver.find_elements_by_xpath("xpath_name")

2.4一个定位方式补充

其实这个也就是一组的方式中的elements少个s

通过class_name(类名)定位一个元素

find_element_by_class_name("class_name")

通过id定位一个元素

driver.find_element_by_id("id_name")

通过xpath定位一个元素

driver.find_element_by_xpath("xpath_name")

在这里插入图片描述
这是我移动端的自动化测试,我记得以前还发了一个PC端的自动化测试 点击此处

https://blog.csdn.net/hanhanwanghaha欢迎关注这个超级无敌可爱的人鸭,有什么问题留言私信皆可,看见必回!
创作不易,如有转载,请注明出处

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/568737.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

连接真机开发安卓(Android)移动app MUI框架 反馈意见、忘记密码、登录、底部选项卡、联系我们、导航等页面代码可拿——混合式开发(六)

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 开头先分享个有趣的哈哈哈 承包了我一天的快乐秧 点击此处…

【工作总结】银行软件测试工作总结

最近换工作进入到外包公司,驻点到银行进行集成测试工作,为了让自己更熟悉金融行业,特别是银行业相关业务,以及总结自己测试的一些经验,希望将自己了解和学习的内容记录下来。主要从以下几个方面学习: 一、…

【工作总结】银行的等级架构

日常我们办理银行业务一般都是在银行的二级支行网点办理。对于银行的等级架构,银行从上至下共分为5层,分别为总行、一级分行、二级分行、一级支行、二级支行。 一级分行一般称为省分行,也就是管理省一级的业务的机构,当然也有一些…

前端如何设置背景颜色的透明度 css中的 rgba() 函数详解 :background-color: rgba(255,192,203,0.3)

目录前言rgba() 函数 详解再分享一个小技巧哈哈哈前言 今天在开发移动端的时候感觉没背景颜色有点丑,再加上自己做的是蛋糕app,觉得暖色应该会很好看,于是就用了这行代码 background-color: rgba(255,192,203,0.2);实现的效果如图&#xff…

【工作总结】银行应用系统架构(一)

银行应用系统架构,听上去很复杂、很专业的内容,如何下笔想了很久。 不太想写成一个教科书一般的文章,那样写着轻松但是看着累,最关键的对语读者来说,不会有太大的收获。其实一个好的传授者,并不是要把知识…

你值得掌握的 Git分支等 常用命令 (持续更新中)

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) Git分支一、本地1.1创建分支1.2切换分支1.3创建切换分支1.…

【工作总结】银行应用系统架构(二)

上一次我们介绍了什么是银行应用系统架构,为何要做应用系统架构的设计和规划。 这次开始,我们主要谈谈银行IT狗是如何规划应用系统架构的。 我们现在已经知道了,银行对老百姓的每个业务服务,后台都对应着相应的服务系统&#xff…

Appium+Python移动端 实战——教你如何xpath定位自动化测试

今日份问题 我:手动就可以操作简单的测试,为什么要自动化测试 老师:主要是回归测试。改了bug之后,重新再来测试。这样用回归测试就比手动测试要节约成本 AppiumPython移动端实战一、前提二、上实战一、前提 开启模拟器&#xff0…

【工作总结】银行应用系统架构(三)

上一次的文章中,介绍了银行应用系统的架构层次。如同人体的结构一样,是一个从宏观,逐渐细化到微观的过程(见下图)。 人体结构大致是这样的: 那么具体来分析,银行应用系统架构的每一层&#xff0…

黑盒测试 — 测试用例 之 判定表法看这一篇就够了

测试用例 之 判定表法一、应用场景二、判定表法定义三、步骤四、实战 — 案例分析一、应用场景 在一些数据处理问题中,逻辑条件取值的组合过多时,判定表是一个不错的选择! 二、判定表法定义 判定表通常由四个部分组成,如下: 意…

逻辑思维题一:条件组合覆盖

我们知道软件测试对测试人员的逻辑思维要求比较高,而且笔试时经常会出一些逻辑思维方面的问题,今天我们来看一个问题。题目是这样的:八瓶酒一瓶有毒,用人测试。每次测试结果8小时后才会得出,而你只有8个小时的时间。问…

《产品思维30讲》精华及感想

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 看了梁宁fairy大佬对产品思维的30讲及David,结…

【资讯】时间的朋友2017跨年演讲全回顾

2016年12月31日20:30,上海梅赛德斯奔驰文化中心,罗振宇“时间的朋友”跨年演讲如约而至。 罗胖曾发下大愿望:举办跨年演讲,连办二十年。今年,是倒数第十八场。 历时四个小时的演讲中,罗胖带着自己过去一年…

你值得掌握的Windows热键——原来高手都是这样玩电脑的!

2021年的开篇之作《你值得掌握的Windows的15个热键》和实用却冷门的几个电脑实用小技巧,再给大家分享一首敲级好听的歌——海龟先生的《男孩别哭》。很好听的旋律 哈哈哈。 https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众…

【文章】人的好运从哪里来?

好运气是自己给的。 一、从好身体来 健康是福。有了健康的身体才有奋斗成功的本钱。要有健康身体,除了要注重饮食与运动外,还要正常的生活习惯。心理的健康也很重要。身心健康,就能顺利工作生活,迎着阳光,灿烂美好&…

带你一起学计算机专业英语!(IT行业、四六级党快记起来)《软件工程专业英语》第三单元:项目计划——单词、短语、名词缩写、难句

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) Professional English this subject test full score, the…

机器智能简史

序 在200年前,曾三次担任美国国务卿的政治家丹尼尔韦伯斯特,对革命性的蒸汽机作出了如下评价: 它可以开船、抽水、挖掘、载物、拖曳、举物、锤打、织布、印刷。它仿佛一个人,至少属于工匠阶级:“停止你的体力劳动&…

数据分析——切片器、数据透视表与数据透视图(职场必备)

在处理小量数据的时候,excel真是一个强大的武器,最近闲下来的时候就温习excel的数据处理,接下来来梳理一下切片器、数据透视表与数据透视图的使用重点,有任何不懂的可以马上私信我。近期也会更新像powerbi相关的东西,欢…

kex_exchange_identification: Connection closed by remote host Connection closed by 140.82.121.3 port

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 我在上传项目至远程仓库的时候遇到这样的问题 $ git push…

【文章】古人最睿智的十封“信”,写得如此通透!

第1封:写给相遇 相遇时难别亦难, 东风无力百花残。 ——李商隐 假如人生不曾相遇,自己就还是那个自己,日复一日地奔波,淹没在这个喧嚣的世间。 因为遇见了那些注定要遇见的人,自己不再是原来的自己&#…