首页游戏资讯App主动化测试|Appium工做原理及Desired Capbilities设置装备摆设

App主动化测试|Appium工做原理及Desired Capbilities设置装备摆设

misa2 04-10 4次浏览 0条评论

Appium工做原理及Desired Capbilities设置装备摆设

App主动化测试|Appium工做原理及Desired Capbilities设置装备摆设

Appium工做原理

App主动化测试|Appium工做原理及Desired Capbilities设置装备摆设

脚本恳求——4723端口appium server——解析参数给PC端4724端口——发送给设备4724端口——通过设备4724端口发给bootstrap.jar——Bootstrap.jar把号令发给uiautomator

JsonWireProtocol:它是一种协议,遵照REST风气,以JSON办法停止传输,是一系列的键值对,遵照W3C WebDriver Spec设想风气;appium中的Json wire protocol继续自selenium的webdriver wire protocol,并停止了扩展,使得Json wire protocol可以掌握差别的挪动设备的行为。

bootstrap:bootstrap在appium中是以jar包的形式存在的,它的功用是做为一个socket办事,把Appium sever发送的恳求转化成uiautomator的号令来让uiautomator停止处置。 在创建session胜利之前,appium就已将bootstrap.jar放进手机中,并开启设备上的基于appiumbootstrap的socket办事,绑定本机和boostrap通信的端标语4724用于和Android设备通信,默认监听4724端口,期待client的毗连。

Uiautomator:UiAutomator是Google供给的用来做安卓主动化测试的一个Java库,基于Accessibility办事。功用很强,能够对第三方App停止测试。它的初始版本发布在Android4.3(APIlevel18)及以上的android系统版本。

Selendroid:Selendroid和UiAutomator类似,也是Google供给的一个安卓主动化测试软件,适用于Android系统的当地利用法式和挪动web的UI混合测试。它次要利用在Android4.2(APIlevel17)及以下的android系统版本。

Instruments:Instruments一个很乖巧的、强大的东西,是性能阐发、动态跟踪和阐发OSX以及iOS代码的测试东西,appiumios封拆了apple的Instruments框架,次要利用Instruments里的UIAutomation(Apple的主动化测试框架),然后在设备中注进进bootstrap.js停止行监听。

Desired Capabilities设置装备摆设

Desired Capabilities照顾了一些设置装备摆设信息。从素质上讲,它是key-value形式的对象。能够理解成是java里的map,python里的字典,ruby里的hash以及js里的json对象。现实上Desired Capabilities在传输时就是json对象。

DesiredCapabilities最重要的感化是告诉appium server本次测试的上下文。

好比:

展开全文

本次测试是启动阅读器仍是启动挪动设备?

是启动andorid仍是启动ios?

启动android时,app的package是什么?

启动android时,app的activity是什么?

appium server的那些疑问Desired Capabilities都必需赐与解答,不然appium server就无法完成挪动app或者是阅读器的启动。

Desired Capabilities常用键值对介绍:

automationName:利用哪种主动化引擎。appium(默认)仍是Selendroid。

platformName:平台的名称,iOS,Android,FirefoxOS

platformVersion:挪动设备的系统版本号,7.1,4.4

deviceName:设备名称,Android:可随意填写;IOS:instruments -s devices

udid:毗连的物理设备的独一设备标识adb devices可获取

app:当地绝对途径_或_长途属性一路利用)

browserName:测试的H5 web阅读器,假设是测app则漠视

newCommandTimeout:用于客户端在退出或者完毕session之前,Appium期待客户端发送一条新号令所破费的时间(秒为单元)

noReset:在当前session前不重置app形态,默认值为false

fullReset:(iOS)删除所有的模仿器文件夹。(Android)要肃清app里的数据,请将利用卸载才气到达重置利用的效果。在Android,在session完成之后也会将利用卸载掉。默认值为false

Desired Capabilities android特有键值对介绍:

appPackage:运行的Android利用的包名;假设是测试H5网页则漠视该属性

appActivity:Activity的名字是指从你的包中所要启动的Androidacticity。凡是需要再前面添加‘.’;假设是测试H5网页则漠视该属性

unicodeKeyboard:利用Unicode输进法。默认值为false

resetKeyboard:在设定了unicodeKeyboard关键字的Unicode测试完毕后,重置输进法到原有形态。假设零丁利用,将会被漠视。默认值为false

noSign:跳过查抄和对利用停止debug签名的步调。仅适用于UiAutomator,不适用于selendroid。默认值为false;(一般和app属性一路利用)

DesiredCapabilities利用实例:

from appium import webdriver

# 1、定义一个DesiredCapabilities设置装备摆设的字典

des = {

'automationName':'appium',

'platformName':'Android', # 平台的名称,iOS,Android,FirefoxOS

'platformVersion':'9.1.0', # 填写android虚拟机/实机的系统版本号

'deviceName':'huawei', # 填写安卓虚拟机/实机的设备名称

'appPackage':'com.sky.jisuanji', # 填写被测app包名

'appActivity':'.JisuanjizixieActivity', # 填写被测app的Activity进口

'udid':'HBSBB18821510293', # 填写通过号令行 adb devices 查看到的udid

'noReset':True, # 能否 不重置APP

'noSign':True, # 能否 不签名

'unicodeKeyboard':True, # 能否撑持中文输进

'resetKeyboard':True, # 能否撑持重置键盘

'newCommandTimeout': 30 # 30秒没发送新号令就断开毗连

# 2、把设置装备摆设的字典做为恳求参数发送给appium办事器

driver = webdriver.Remote(')

from appium import webdriver

# 1、定义一个DesiredCapabilities设置装备摆设的字典

des = {

'automationName':'appium',

'platformName':'Android', # 平台的名称,iOS,Android,FirefoxOS

'platformVersion':'9.1.0', # 填写android虚拟机/实机的系统版本号

'deviceName':'huawei', # 填写安卓虚拟机/实机的设备名称

'browserName': 'chrome', # 阅读器的设备名称

'udid':'HBSBB18821510293', # 填写通过号令行 adb devices 查看到的udid

'noReset':True, # 能否 不重置APP

'noSign':True, # 能否 不签名

'unicodeKeyboard':True, # 能否撑持中文输进

'resetKeyboard':True, # 能否撑持重置键盘

'newCommandTimeout': 30 # 30秒没发送新号令就断开毗连

# 2、把设置装备摆设的字典做为恳求参数发送给appium办事器

driver = webdriver.Remote(')

噪音测试app
App主动化测试|Appium元素定位东西 明日运势|星云测试APP凯莉2023年3月12日运势
相关内容
发表评论

游客 回复需填写必要信息