首页 >运维 >安全 >Appium框架的知识点有哪些

Appium框架的知识点有哪些

王林
王林转载
2023-05-13 21:37:121086浏览

1、测试对象

Appium是一个开源工具,用于自动化iOS、Android设备和Windows桌面平台上的原生、移动Web和混合应用。

"原生应用"指那些用iOS、Android或者WindowsSDK编写的应用。

"移动web应用"是用移动端浏览器访问的应用(Appium支持iOS上的Safari、Chrome和Android上的内置浏览器)。

"混合应用"带有一个"webview"的包装器——用来和Web内容交互的原生控件。

重要的是:Appium是跨平台的:它允许你用同样的API对多平台写测试,做到在iOS、Android和Windows测试套件之间复用代码。

2、支持平台及语言

● appium是跨平台的,支持OSX,Windows以及Linux系统。它允许测试人员在不同的平台(iOS,Android)使用同一套API来写自动化测试脚本,这样大大增加了iOS和Android测试套件间代码的复用性

● appium支持多语言,采用C/S设计模式,只要满足client能够发送http请求给server即可

3、工作原理

APPIUM IOS端工作原理

下面我们通过一张图来看下IOS端APPIUM全过程工作原理:

Appium框架的知识点有哪些

APPIUM Android端工作原理

下面我们通过一张图来看下android端APPIUM全过程工作原理:

Appium框架的知识点有哪些

解释:

整个箭头指向为一个完成的指令循环

webdriver script需要自动化测试人员自己编写对应的测试脚本

建议大家去了解下JSON wire protocol、instruments、UiAutomator

4、安装工具

● 测试语言,如python

● appium客户端

● appium服务端

● 移动设备,若使用虚拟机则需进行安装

5、环境搭建

(一)安装Android SDK

1、Android SDK(Software Development Kit,软件开发工具包)提供了 Android API 库和开发工具构建,测试和调试应用程序,可以看做用于开发和运行Android应用的一个软件

2、提供小工具,比如adb、aapt、uiautomatorview

3、测试设备使用安卓模拟器,这一步决不能跳过

(二)安装 appium Server

1、appium官网:https://pium.app/downloads/

2、下载appium安装包(AppiumForWindows.zip,appium.dmg)

3、安装,并配置appium环境变量

(三)安装 python-client

1、先安装编程语言,比如python语言

2、安装Appium-Client,python的话可使用pip安装:pip install Appium-Python-Client

6、应用及操作

①调用appium过程

1、配置手机设备参数,告诉server端我想调起的是哪一台手机设备

2、抓取手机上应用的控件,指定对应的控件来进行操作

3、对抓取到的控件进行操作,比如点击、填写参数等

第一步,配置手机设备参数

Appium 的 Desired Capabilities 基本配置如下:

#Android environment

import unittest

from appium import webdriver

desired_caps = {}

desired_caps['platformName'] = 'Android'

desired_caps['platformVersion'] = '4.2'

desired_caps['deviceName'] = 'Android Emulator'

desired_caps['app'] = PATH('../../../apps/selendroid-test-app.apk')

desired_caps['appPackage'] = package

desired_caps['appActivity'] = activity

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

常见参数解释:

● deviceName:指定启动设备,比如Android Emulator、iPhone Simulator等

● automationName:指定自动化引擎,默认appium

● platformName:指定移动平台,Android或者iOS

● platformVersion:指定平台的系统版本。例如指定Android系统版本为4.2

● appActivity:待测试app的Activity,注意,原生app的话要在activity前加个"."

● appPackage:待测试app的包名(package)信息

第二步,抓取手机上应用的控件

通过Android SDK内置工具uiautomatorviewer.bat来查看手机应用的控件参数(该工具位于 /tools/bin/ 目录下)

1、id定位

Appium框架的知识点有哪些

使用方法:

driver.find_element_by_id('com.android.contacts:id/three')

2、name定位

Appium框架的知识点有哪些

使用方法:

el = self.driver.find_element_by_name('未接来电') el = self.driver.find_elements_by_name('未接来电')

3、class name 定位

Appium框架的知识点有哪些

使用方法:

els = self.driver.find_element_by_class_name('android.widget.ImageButton') els = self.driver.find_elements_by_class_name('android.widget.ImageButton')

4、Accessibility ID定位

Appium框架的知识点有哪些

使用方法:

el = self.driver.find_element_by_accessibility_id('三') el = self.driver.find_elements_by_accessibility_id('三')

5、android uiautomator定位

Appium框架的知识点有哪些

使用方法:

el=self.driver.find_element_by_android_uiautomator('new UiSelector().description(星形符号")')

els=self.driver.find_elements_by_android_uiautomator('new UiSelector().clickable(false)')

第三步,操作控件

1.scroll

scroll(self, origin_el, destination_el):

从元素origin_el滚动至元素destination_el

举例:driver.scroll(el1, el2)

用法:driver.scroll(el1,el2)

2.tap

tap(self, positions, duration=None):

模拟手指点击(最多五个手指),可设置按住时间长度(毫秒)

举例:driver.tap([(100, 20), (100, 60), (100, 100)], 500)

用法:driver.tap([(x,y),(x1,y1)],500)

3. swipe

swipe(self, start_x, start_y, end_x, end_y, duration=None):

从A点滑动至B点,滑动时间为毫秒

举例:driver.swipe(100, 100, 100, 400)

用法:driver.swipe(x1,y1,x2,y2,500)

4. keyevent

keyevent(self, keycode, metastate=None):

发送按键码(安卓仅有),按键码可以上网址中找到

用法:driver.keyevent('4')

5. press_keycode

press_keycode(self, keycode, metastate=None):

发送按键码(安卓仅有),按键码可以上网址中找到

用法:driver.press_ keycode('4')

6.text

text(self):

返回元素的文本值

用法:element.text

7.click

click(self):

点击元素

用法:element.click()

8.get_attribute

get_attribute(self, name):

获取某元素的相关值

用法:element.get_attribute("name")

9.size

size(self):

获取元素的大小(高和宽)

用法 driver.element.size

10. page_source

page_source(self):

获取当前页面的源

用法:driver.page_source

11.quit

quit(self):

退出脚本运行并关闭每个相关的窗口连接

举例:driver.quit()

执行结果判断

在用例执行完毕,需要判断是否通过时,需要和你预期的结果进行对比,一般可以选择断言查找某个标志位是否出现,或者某个元素的text值是否和预期相等,还可以截图后跟参照图片做对比等等。

以上是Appium框架的知识点有哪些的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:yisu.com。如有侵权,请联系admin@php.cn删除