appimu自动化一

appium是一个自动化开源测试工具,支持ios平台和安卓平台啊的原生应用,也支持web应用和混合应用

因为web程序出现的比应用程序早,自动化测试工具比移动应用自动化工具更加成熟

appium是继承webdriver的,可以使用webdriver的api进行跨平台的自动化

客户端、服务端架构

        appium的核心是一个web服务,他接受来自客户端(你写的代码)的链接,监听命令并在移动端应用上执行,答复http的响应来描述执行结果

session

保存http浏览器和服务器的一个会话状态

自动化始终在一个会话中执行,客户端会给服务器发送请求

请求包含一个被称作预期能力的json的对象,这个时候服务器会开启这个自动化会话

并返回一个用于后续发送命令的id

预期能力

是一些发送给appium服务的键值对组合,他高数服务器,我们想启动什么类型的自动化会话

可以修改服务器在自动化过程中的行为,

appium服务器

是一个node.js编写的

appium客户端

        我们写的代码

appium desktop

        他打包了appium服务器运行需要的所有东西,还可以产看应用程序的结构树--元素定位

一、安装adb

adb下载地址

Windows版本:https://dl.google.com/android/repository/platform-tools-latest-windows.zip
Mac版本:https://dl.google.com/android/repository/platform-tools-latest-windows.zip
Linux版本:https://dl.google.com/android/repository/platform-tools-latest-linux.zip

安装adb后,配置系统环境变量,把adb安装路径粘贴到apth变量下并保存;

然后cmd进入命令符窗口,输入adb version,查看adb是否配置成功

二、安装node

打开环境变量,把node安装路径复制到path下面

查看node是否安装成功
node -v
npm -v

三、安装appium

打开appium

host是是ip地址保持默认不用修改

port是端口保持默认不用修改

start server v1.20.2表示启动appium服务

进入appium显示welcome to appium v1.20.2表示appium启动成功

四、安装手机模拟器

手机模拟器设置系统版本,打开开发者选项,允许usb调试

在通过cmd页面通过adb命令:adb connect "IP地址":"端口"

五、安装python

1、通过cmd命令,安装python

pip install python

2、安装pycharm

https://www.jetbrains.com/pycharm/download/

3、通过cmd安装py插件appium

pip3 install  Appium-Python-Client

安装后,运行py代码报错
这个错误AttributeError: 'NoneType' object has no attribute 'to_capabilities'
卸载appium插件,然后在安装插件

pip3 uninstall Appium-Python-Client 卸载
pip3 install Appium-Python-Client==2.0 安装2.0

从新卸载和安装是因为appium和selenium发生冲突,需要对appium降级来解决这个问题

六、安装sdk

1、下载好sdk后,把sdk安装路径复制到环境变量path中

2、运行SDK Managr.exe运行程序,下载以下三个文件

  • build-tools
  • platform-tools
  • add-ons               

运行appium

appium工作原理--安卓

        安卓平台

        1、有客户端发起请求,经过中间服务套件,驱动app执行相关操作,客户端就是你写的 代码

        2、中间服务套件,是实现appium的解析服务,appium在服务端启用4723端口,

                经过该端口实现client(服务器)与appium server的通信。appium server把请求转发给 bootstrap.jar 。 bootstrap.jar安装在手机上,监听4724端口并接受appium命令,最终调用uiautomator,实现测试过程

        3、nootstrap将执行结果返回给appium server。appium server在将结果返回给client

ios平台

        ios和安卓的区别:ppium server把请求转发给  bootstrap.js

一、获取apk安装包路径AppPackge

1、在cmd命令窗口使用appt命令

  • 找到你下载的sdk安装路径,进入build-tools/29.0.3文件内
    • 清空文件路径输入cmd打开命令窗口
    • 使用aapt命令查找安装包        

2、找到你下载的apk,并执行命令

aapt dump xmltree 手机软件安装路径 AndroidManifest.xml|findstr "package"

二、获取Acticity类名appActivity

Acticity类名是调用app代码的入口类,

 1

2、找到你下载的apk,并执行一下命令




获取类名

aapt d badging 手机软件安装包路径|findstr "launchable-activity"



三、确定被测设备品牌名称platformName

1、确定是android还是iso

四、确定被测设备系统版本platformVersion

1、进入手机设置查看手机系统版本

五、确定被测设备名称deviceName

 1、手机打开开发者模式,在用adb命令链接设备

2、输入以下命令查看设备名称

adb drivers

六、确定appium输入法unicodekeyboard

appium的输入法类型是unicodekey;默认为false ,打开为ture

七、输入法恢复默初始状态resetkeyboard

默认为false不恢复,为ture则恢复

nicodekey的输入法配置默认也经常不起作用,这个时候需要我们手动,去设置里修改输入法,把输入法改为初始状态

八、python启动appium

from appium import webdriver 

"""
下面描述了appium和设备信息,如果信息不正确无法执行测试
"""

desired_caps={
    "platformName":"Android",#指定应用平台的类型Android或ios
    "platformVersion":"12",#被测设备版本号
    "deviceName":"127.0.0.1:7555",#获取设备名称
    "AppPacKge":"dsada",#应用程序包名
    "appActivity":"dsa",#应用中需启动程序的Activity类名,  Activity是app程序入口的类名‘
    "unicodeKeyboard":"True", #设置输入法类型,默认为false  
#"resetkeyboard参数,经常不起作用,这就导致,
#我们在执行代码后,要经常去设置里,手动把输入法类型该回去

    "resetkeyboard":"Ture",#测试结束后,重置输入法原有状态,这个值默认False
    
}






#无注释

desired_caps={
    "platformName":"Android",
    "platformVersion":"12",
    "deviceName":"127.0.0.1:7555",
    "AppPackge":"dsada",
    "appActivity":"dsa",
    "unicodeKeyboard":"True", 
    "resetKeyboard":"Ture",
    
}

点击appium放大镜 

把py启动appium服务的代码,放在Desired Capabilities下面的JSON Representation

点击start session进行定位

  • 7
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值