
Appium
文章平均质量分 51
appium
糖冰橙
努力确实会上瘾
展开
-
PO模式:BasePase封装
在PO内有很多的配置功能是相似的,我们可以将它抽离出来,封装到一个父类里面去,比如:实现通用的Page方法,对常用自动化行为做封装管理各种Driver减少每个Page对Appium、Selenium等库的太多依赖针对PO简介中的示例,在创建MainPage和SearchPage对象时,都需要初始化driver对象:def __init__(self, driver: WebDriver): self.driver = driver因此,可以创建一个base_page.py方法,封装初原创 2021-05-05 22:49:06 · 402 阅读 · 0 评论 -
PO模式简介与示例
简介PO模式(Page Object Model)是自动化测试项目开发实践的最佳设计模式之一。PO模式的核心思想是通过对界面元素的封装减少冗余代码,同时在后期维护中,若元素定位发生变化,只需要调整页面元素封装的代码,提高测试用例的可维护性、可读性。优点代码可读性高,减少冗余代码;增加用例的可维护性,业务代码和测试代码被分开,降低耦合性维护成本低;增强复用性。基本原则方法意义用公共方法来代表UI所提供的功能如:首页的搜索功能,名站功能方法应该返回其他的page object或者返回原创 2021-05-05 20:34:18 · 11306 阅读 · 2 评论 -
Appium常用断言
在编写自动化脚本,一般常用的断言场景有两种:元素是否存在:find_elements元素属性是否正确:get_attributepytest assertappium引入pytest之后,就可以直接使用pytest的断言语法元素是否存在assert len(self.driver.find_elements_by_xpath('//*[@text="Edit"]')) == 1assert 'Clicked popup menu item Search' in self.driver.f原创 2021-04-25 13:53:57 · 2488 阅读 · 0 评论 -
appium识别toast
appium识别toast控件,需要满足如下条件:appium版本需要在v1.6.3以上;需要使用Uiautomator2库(automationName:uiautomator2)在写脚本的过程中,推荐使用xpath的方式查找toast//*[@class="android.widget.Toast"]也可以使用文本方式定位//*[contains(@text,"xxxx")]使用演示demo演示对于toast的捕获def test_demo_toast(self): #原创 2021-04-22 13:41:52 · 226 阅读 · 0 评论 -
Appium调用UiAutomator Api
在appium的find elements api中有提到调用在安卓手机上调用uiautomator api进行触控操作,好处是稳定,且比appium封装的方法效率更高。以Python举例(demo):找到第一个textview。driver.find_element_by_android_uiautomator('new UiSelector().className("android.widget.TextView").instance(1)')通过文本查找第一个元素。driver.f原创 2021-04-21 20:16:58 · 328 阅读 · 0 评论 -
Appium常用的Xpath定位方法
Xpath是元素定位中比较常用的方法,当页面元素中没有包含明显的text、ID等或者text不具备唯一性时,那么就必须要使用xpath定位了。driver.find_element_by_xpath()Xpath定位方式分两类:绝对定位:根据严格的父子关系定位相对定位:根据条件匹配定位绝对定位就不说了,直接在页面分析工具中将路径复制出来即可,但平常不推荐使用,一方面是元素较长,不便于代码阅读和后期维护,另一方面是不稳定。本文主要介绍最常用的几种相对定位方式。元素定位通过text定位原创 2021-04-18 20:20:35 · 2154 阅读 · 0 评论 -
Appium用例等待的三种方式
在运行appium自动化脚本的过程中,有些时候由于页面加载时间过长或者升级、广告弹窗遮挡,导致无法找到对应元素而报错,为了脚本的稳定,会在适当的地方加上等待。一般等待的方式有三种:强制等待 sleep()隐式等待 implicitly_wait()显式等待 WebDriverWait()sleep()sleep() 是设置固定休眠时间。一般情况下,不推荐使用sleep(不智能,会阻塞程序流程去等,使用太多的sleep会影响脚本运行速度)。一般脚本中在需要等待的地方time.sleep(1原创 2021-04-18 16:48:46 · 1637 阅读 · 0 评论 -
Appium:测试用例改造
之前录制的测试脚本,是一个最基础的测试脚本,还需要通过一些改造,通过一些测试框架的支撑,才能成为在项目中使用的测试用例。测试框架的选择:java推荐testNGpython推荐pytest创建pytest用例有多种形式,我们最常用的是以下这种:# content of test_class.pyclass TestClass: def test_one(self): x = "this" assert "h" in x def test_tw原创 2021-04-16 23:24:25 · 121 阅读 · 0 评论 -
Appium常用自动化的API
常用的api如下,建议直接看官方文档session:driver的初始化device:设备交互element: 元素查找和交互attributes获取元素内部属性Context:(安卓)解决webview测试touch:手势操作Execute Mobile Command:处理一些特殊操作。...原创 2021-04-15 22:51:56 · 152 阅读 · 0 评论 -
Appium脚本使用隐式等待让用例更稳定
在编写appium自动化脚本的过程中,为了脚本的稳定,会在适当的地方加上等待。一般等待的方式有三种:强制等待 sleep:设置固定休眠时间,单位为秒隐式等待 implicitly_wait:服务端(appium)会在特定的超时时间内重试多次寻找控件。显式等待 WebDriverWait():在客户端(用例端)根据更灵活的条件循环等待条件满足一般情况下,不推荐使用sleep(不智能,会阻塞程序流程去等,使用太多的sleep会影响脚本运行速度)。而隐式等待是由webdriver提供的方原创 2021-04-14 23:32:26 · 585 阅读 · 2 评论 -
3_Appium Server的安装
如果有持续集成需求,那么直接使用appium server更为方便。appium server安装方式如下:安装Node.js(推荐LTS版本)brew install node安装appiumnpm install -g appiumappium大量的依赖组件都在海外,如果没梯子,建议使用淘宝的源npm install -g cnpm --registry=https://registry.npm.taobao.orgcnpm install -g appium...原创 2021-04-13 22:35:58 · 856 阅读 · 0 评论 -
2_Appium Desktop的安装和使用
Appium Desktop(github)是一款内嵌了appium server和appium的分析工具的图形化软件:可以设置选项、启动/停止服务器、查看日志等功能;且无须提前安装Node / NPM,因为Node运行时直接与Appium Desktop绑定。可以使用Inspector来查看应用程序的元素,并进行基本的交互。十分适合新手从appium desktop的入门学习appium。安装配置前提:本地已经有android和java环境;从下载地址下载最新版本,并且安装原创 2021-04-12 23:18:24 · 354 阅读 · 0 评论 -
1_Appium介绍
介绍Appium(官网,github)Appium是一个开源的,跨平台的自动化测试框架,适用于Native Application、Mobile Web Application或Hybrid Application的自动化测试。优缺点优点Appium支持多种应用程序的测试,可以测试移动Native App、Hybrid App 和 Web App。被测试的应用程序不需要特殊编译。Appium的测试对象一般不需要做特殊修改,如不需要引入任何额外的测试SDK,不需要添加任何的权限,也不要求被测程序原创 2021-04-10 22:37:24 · 1284 阅读 · 0 评论 -
启动appium session报错:Neither ANDROID_HOME nor ANDROID_SDK_ROOT environment variable was exported.
报错详情安装完appium desktop后启动,启动session时报错:ErrorAn unknown server-side error occurred while processing the command. Original error: Neither ANDROID_HOME nor ANDROID_SDK_ROOT environment variable was exported. Read https://developer.android.com/studio/command原创 2021-03-15 22:45:00 · 8382 阅读 · 1 评论 -
appium:Could not detect Mac OS X version
使用appium-doctor检查出Could not detect Mac OS X version,原因是appium还没兼容10.10以上的系统。但是只需要在/usr/local/lib/node_modules/appium/lib/doctor/ios.js改一下相应的配置就可以了。IOSChecker.prototype.getMacOSXVersion = fun...原创 2016-07-03 22:19:41 · 5264 阅读 · 1 评论 -
mac运行appium报错:Appium will not work if used or installed with sudo
在mac上安装appium时会遇到如下报错:tangbincheng@tangbinchengdeMacBook-Pro:~$ npm install -g appiumnpm ERR! Error: EACCES, mkdir '/usr/local/lib/node_modules/appium'npm ERR! { [Error: EACCES, mkdir '/usr/lo...原创 2015-02-22 11:41:16 · 1953 阅读 · 0 评论