首页 > 编程语言 >Appium+python之APP自动化一

Appium+python之APP自动化一

时间:2023-01-05 11:37:36浏览次数:58  
标签:Appium github python APP appium https AppiumServer Android com

一、appium简介

1、什么是appium

  1. appium 是开源的移动端自动化测试框架;
  2. appium 可以测试原生的、混合的、以及移动端的 web 项目;
  3. appium 可以测试 ios,android 应用(当然了,还有 firefox os);
  4. appium 是跨平台的,可以用在 osx,windows 以及 linux 桌面系统上;

2、appium 的技术架构

  1. iOS:Apple’s UIAutomation
  2. Android 4.2+:Google’s UiAutomator
  3. Android 2.3+:Google’s Instrumentation. (Instrumentation support is provided by bundling a separate project, Selendroid)

3、appium 支持多平台、多语言

  • appium在不同平台中使用了标准的自动化APIs,所以在跨平台时,不需要重新编译或者修改自己的应用。

  • appium支持Selenium WebDriver支持的所有语言,如java、Object-C、JavaScript、Php、Python、Ruby、C#、Clojure,或者Perl语言,更可以使用Selenium WebDriver的Api。Appium支持任何一种测试框架.Appium实现了真正的跨平台自动化测试。

语言/框架 Github地址
Python https://github.com/appium/python-client
Java https://github.com/appium/java-client
Ruby https://github.com/appium/ruby_lib
JavaScript (Node.js) https://github.com/admc/wd
Objective C https://github.com/appium/selenium-objective-c
PHP https://github.com/appium/php-client
C# (.NET) https://github.com/appium/appium-dotnet-driver
RobotFramework https://github.com/jollychang/robotframework-appiumlibrary

4、appium 的工作原理

image

  • 首先,appium 支持多语言,因为它针对流的几种语言分别开发的相应的 appium 库。好处就是我们可以选择自己熟悉的语言编写 appium 脚本。
  • 其次,appium 支持多平台,包括 MAC 和 Windows。它针对这两大平台开发了 appium-Server。
  • 最后,appium 又同时支持 Android 和 iOS 两个操作系统。这就使得 appium 变得非常灵活。

(1)自动化脚本向AppiumServer发送注册参数(URL,platformName,platformVersion,deviceName,appPackage,appActivity)

(2)AppiumServer将bootstrap.jar包放入手机端中

(3)手机端用bootstrap启动手机端口(4724),并将端口返回给AppiumServer(相当于建立好了通信连接)

(4)自动化脚本发送请求(操作或命令或动作)给AppiumServer

(5)AppiumServer将请求解析并发送给bootstrap

(6)bootstrap将请求解析发给UIAutomator

(7)UIAutomator执行相应的操作并将结果返回给bootstrap

(8)bootstrap将响应结果返回给AppiumServer

(9)AppiumServer将响应结果返回到脚本

综上所述,AppiumServer像是一个请求者;bootstrap充当桥梁的角色,负责PC与电脑之间的通信;UIAutomator则是真正的执行者。

二、准备工具

appium是基于JDK+SDK环境来运行的
①jdk环境:jdk的安装与配置
②Android SDK:Android SDK的安装与配置
③python:python的安装与配置
④appium,下载地址:https://github.com/appium/appium-desktop/releases/tag/v1.3.1
⑤夜神模拟器,下载地址:https://www.yeshen.com/
使用真机测试,忽略第⑤步

三、连接真机或者模拟器(二选一)

app自动化测试可借助模拟器或者真机测试,最好选择使用真机测试。
首先要使用adb命令连接设备(此处选择模拟器)

adb连接真机或模拟器参考:adb连接真机或模拟器

四、appium环境搭建(Android)

1、appium 的安装

①下载完成后,双击exe文件进行安装(此处下载的1.3.1版本)
image

②安装完成后,启动Appium,host和port默认的即可
image


③点击start server v1.7.2
image

如果此端口被占用:可以使用此命令检查端口是否被占用:netstat -ano | findstr 4723


④进入到appium界面中
image


⑤配置Appium检查器

Appium右上角有三个选项分别为:
image start inspector session 开始检查会话

image Get Raw Logs 获得原生日志

image Stop Server 停止服务

点击 start inspector session 选项,进入下图
image

⑥在Desired Capabilities选项中输入如下内容,如图:
image

1)deviceName:设备名称

获取方式:在cmd窗口输入adb devices (前提:已连接设备)
image
此处填写:127.0.0.1:62001

2)platformName:操作系统名称

可填写:Android和IOS
此处填写:Android

3)platformVersion:操作系统版本

夜神模拟器:【设置】->【关于平板电脑】->【Android版本】
image
此处填写:5.1.1

4)appPackage:待测app包名

此处用到的app(一笔记账):阿里云盘
https://www.aliyundrive.com/s/yREFAjBtNZi 提取码: 38et

aapt dump badging apk包路径 |findstr package
image
此处填写:com.mobivans.onestrokecharge

5)appActivity:app的程序主入口

aapt dump badging apk包路径 |findstr activity
image
此处填写:com.stub.stub01.Stub01

⑦点击右下角的 Start Session,会在设备中安装两个app(Appium Settings和Unlock)
启动成功后显示如下页面
image

注:点击 Start Session,出现如下错误,说明设备中未安装该app
image

标签:Appium,github,python,APP,appium,https,AppiumServer,Android,com
From: https://www.cnblogs.com/lc-blogs/p/17015231.html

相关文章

  • Python 去掉文本内容中的\xa0字符
    爬取网页时,不可避免会遇到\xa0字符串,就会发现,正则re.sub(r’\xa0’,‘’)和字符串的replace都不管用。通常地,我们所用的空格的ASCII码是\x20,是在标准ASCII可见字符0x2......
  • uniapp + vue 实现色弱测试小游戏
    最终的效果:点击色块中不同的色块,跳到下一关准备一些静态数据,放到js目录下,在vue文件中引入即可//在1到比1大的任意整数之间随机取一个整数exportconstgetRandom......
  • python的安装与配置
    windows系统安装Python1、进入python官网下载python官网点我1)鼠标移动到"Downloads"上(不是点击,是移动到Downloads上)2)根据自己的系统选择,windows系统点击Windows3)......
  • 西门子PLC在水处理系统中如何实现手机APP在线监控
    随着时代的发展和科学技术的进步,供水泵站、污水处理厂、城市管道的给排水系统也逐步实现智能化、数字化改造。在实际的应用中,对水处理的工艺要求进一步提高,需要实时对各个站......
  • 1、app自动化的底层逻辑,adb及monkey
    app自动化的过程中,底层逻辑是计算机通过adb与移动设备进行沟通,告诉移动设备,进行什么操作;一、概念:Andriod调试桥(adb),是一种命令行工具,可以让我们与设备进行通讯。二、adb......
  • Python 调用Zoomeye搜索接口
    钟馗之眼是一个强大的搜索引擎,不同于百度谷歌,它主要收集网络中的主机,服务等信息,国内互联网安全厂商知道创宇开放了他们的海量数据库,对之前沉淀的数据进行了整合、整理,打造了......
  • PythonSpider
    ......
  • python爬虫之抓取高清壁纸
    对于很多电脑玩家喜欢给自己电脑装饰精美的壁纸,但是碍于图片大小清晰度等原因无法找到合适的,今天我就利用爬虫技术手段,现实高清壁纸抓取,需要的小伙伴可以一起过来看看!#cod......
  • 有意思,小程序还可以一键生成App!
    小程序≠微信小程序说到小程序,大部分同学的第一反应,可能是微信小程序、支付宝小程序,确实,小程序的概念深入人心,并且已经被约定俗成的绑定到某些互联网公司的APP上。但是......
  • 极客编程python入门-内建模块datetime
    datetimedatetime是Python处理日期和时间的标准库。获取当前日期和时间>>>fromdatetimeimportdatetime>>>now=datetime.now()#获取当前datetime>>>print(now)2015......