Appium
Appium 移动端自动化测试
harrain
这个作者很懒,什么都没留下…
展开
-
appium源码解读(一)之appium是如何定位元素的
当python脚本执行 find_element函数时,首先调用到 webdriver.py下的find_element函数。self.execute是在selenium/webdriver/remote/webdriver.py, def find_element_by_id(self, id_): """Finds an element by id. """ return self.find_element(by=By.ID, value=id原创 2020-11-19 01:05:04 · 931 阅读 · 1 评论 -
ERROR: Could not connect to lockdownd
执行 ideviceinfo -u 和 ideviceinstall -l时,报错ERROR: Could not connect to lockdownd解决办法先断开所有连接PC的iOS设备执行brew uninstall libimobiledevicebrew install --HEAD libimobiledevicebrew link --overwrite libimobiledevicebrew install --HEAD ideviceinstallerbre原创 2020-08-10 11:03:59 · 2799 阅读 · 0 评论 -
Jenkins驱动SeleniumGrid测试
配置Jenkins系统管理 - 插件管理,在可选插件里,搜索 Selenium Plugin 和 Selenium Capability Axis 勾选,安装。安装后,回到首页,进入系统配置。selenium grid server地址修改成 你之前已经配好的地址。然后保存。回首页点击 Selenium Grid点击 restart,重启hub新建Job输入名称,选择 构建一个多配置项目,点击确定。回到首页, 进入你所建的job点击配置在Configuratio原创 2020-05-24 11:37:55 · 868 阅读 · 0 评论 -
使用Selenium Grid管理测试设备
Selenium Grid优点Central entry point for all testsManagement and control of the nodes / environment where the browsers runScalingRunning tests in parallelCross platform testingLoad balancing架构图HubIntermediary and managerAccepts requests to run原创 2020-05-23 16:14:49 · 392 阅读 · 0 评论 -
使用Appium做iOS自动化测试
appium desktop报Could not determine iOS SDK version: Could not get Xcode version. /Library/Developer/Info.plist does not exist on disk.在终端执行 instruments -s device 报xcode-select: error: tool ‘instruments’ requires Xcode, but active developer directory ‘/L原创 2020-05-19 18:31:40 · 3466 阅读 · 0 评论 -
ios自动化测试前准备
App Store 与 Apple 证书体系Certificates:苹果签发• 开发证书:开发者使用• 发布证书:对外分化到 App Store 或者使用 ad-hoc 模式分发• Provisioning Profiles:• App ID:bundleID 相关设置• Devices List:可内测的真机列表• 分为开发和发布两种大类型• 发布又分为 ad-hoc、app store、enterprise 级别• .app 文件:编译后生成的项目打包代码• .ipa 文件:经过签原创 2020-05-19 12:18:03 · 367 阅读 · 0 评论 -
Hybrid App 测试
基本介绍WebView 控件在 Appium 中的抽象Native 层面支持uiautomator 解析 WebView 中的内容并映射为原生控件getPageSource 为 DOM 结构可发现 WebView 组件和控件切换为 WebView 上下文切换后才是正规的 WebgetPageSource 为 HTML可以使用 CSS 定位等Hybrid 测试流程• 首先进去带有 WebView 的页面• 使用 Contexts API 寻找 We原创 2020-05-14 16:34:49 · 665 阅读 · 0 评论 -
Mac终端查看Android模拟器列表并快速启动模拟器
终端输入emulator -list-avds会显示出如果显示类似command not found请检查.bash_profile中是否有export PATH=${PATH}:~/Library/Android/sdk/tools该环境变量启动某个模拟器emulator @Nexus_5X_API_27_x86oremulator -avd Nexus_5X_API_27_x86...原创 2020-05-13 14:35:14 · 1111 阅读 · 2 评论 -
Mac终端快速启动uiautomatorviewer
打开终端terminalcd ~open -e .bash_profile在弹出的文件编辑窗口中,加入export PATH=${PATH}:~/Library/Android/sdk/tools/bincommand+s保存后,继续在终端输入命令source .bash_profile #使修改生效接着,只要输入uiautomatorviewer,就可以直接进打开uiautomatorviewer了uiautomatorviewer...原创 2020-05-13 14:19:54 · 3634 阅读 · 0 评论 -
Toast识别定位获取文本
Toast 捕获原理Toast 识别原理Toast 定位方法• getPageSource 是无法找到的• 必须使用 xpath 查找• 推荐 //*[@class=‘android.widget.Toast’]识别self.driver.find_element(By.XPATH,"//*[@class='android.widget.Toast']")获取文本self.driver.find_element(By.XPATH,"//*[@class='android.widge原创 2020-05-13 12:39:41 · 585 阅读 · 0 评论 -
Appium元素定位及交互
测试步骤三要素定位、交互、断言元素定位控件基础知识DOM:Document Object Model 文档对象模型• DOM 应用:最早应用于 HTML 和JavaScript 的交互。界面的结构化描述,常见的格式为 html、xml。核心元素为节点和属性• XPath:XML 路径语言,用于 XML 中的节点定位App DOM结构解析关键 Attribute• clickable• content-desc• resource-id• text• bounds原创 2020-05-13 12:13:35 · 684 阅读 · 0 评论 -
Appium等待体系-隐式等待显式等待sleep
隐式等待driver.implicitly_wait(seconds)解读隐式等待:服务端(Appium)会在特定的超时时间内重试多次寻找控件需要设置在find_element之前。作用于控件element,如果没有element可查找,直接结束显式等待1 等待某控件显示可见WebDriverWait(self.driver, 60).until(expected_conditions.visibility_of_element_located(self.toast_indicator))原创 2020-05-13 11:55:50 · 754 阅读 · 0 评论 -
基于po模式改造用例
Page Object模式以页面为单位组织封装, 隐藏实现细节; 可读性提高, 减少findElement,click代码, 页面发生变化修改对应page,不影响整体用例原则:公共方法代表UI功能同样的行为不同结果可设计为不同的方法方法返回Page Object或者用于断言的数据不在方法内加断言不要暴露UI元素给外部不需要建模所有UI元素解读:以页面为单位组织封装, 页面发生变化修改对应page,不影响整体用例。UI元素定位及交互细节封装在方法内, 用公共方法代表UI功能,提原创 2020-05-12 17:23:21 · 911 阅读 · 0 评论 -
测试用例步骤改造-参数化数据驱动
原本的用例 def test_native(self): self.driver.find_element(By.XPATH,"//*[@text='Native']").click() self.driver.find_element(By.XPATH,"//*[@text='Native_Video']").click()欲将find_element的查找方式类型和值及后续交互动作以YAML的方式存贮下来,如果UI元素改变,不需要修改原本用例代码,修改或者新原创 2020-05-12 10:47:24 · 271 阅读 · 0 评论 -
pytest跑appium server用例
安装激活pycharm官网下载安装激活 https://blog.csdn.net/harrain/article/details/106059067安装pytestpip3 install -U pytest查看pytest 版本pytest --version改造用例# This sample code uses the Appium python client# pip install Appium-Python-Client# Then you can paste this原创 2020-05-11 19:59:43 · 333 阅读 · 0 评论 -
XPATH定位
常用XPath相对定位表达式查找//*[@text=‘登录’]//*[contains(@resource-id,‘login’)]条件匹配//*[contains(@resource-id,‘login’) and contains(@text,‘登录’)]//*[contains(@text,‘登录’) or contains(@label,‘登录’)]寻找所有元素//*...原创 2020-05-11 16:28:59 · 138 阅读 · 0 评论 -
Python跑AppiumDesktop用例
处 点击开始recording处点击Tap,会在Recorder处生成代码处点击,查看完整代码处点击,复制代码到剪贴板可以保存代码到demo.py。使用python demo.py运行前,先安装Appium-Python-Clientpip install Appium-Python-Client如果没有pip,执行下面代码安装pip(可能需要科学上网)sudo easy_install pip上述步骤执行完后, 运行python demo.py运行case。...原创 2020-05-11 15:12:06 · 208 阅读 · 0 评论 -
Appium Desktop录制case
启动appium desktop后,按https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md 说明 输入 Desired Capabilities (platformName/deviceName/appPackage/appActivity) 后,点击start session依次完成录制,点击,退出...原创 2020-05-11 14:56:42 · 181 阅读 · 0 评论 -
Appium Server安装及校验
安装NPMbrew install npm 查看node.js和npm的版本node -vnpm -v没有node.js,执行 brew install node安装Appium Server参考官方说明 https://github.com/appium/appium/blob/master/docs/en/about-appium/getting-started.md科学上网执行 npm install -g appium或者 使用淘宝镜像源安装npm in.原创 2020-05-10 22:12:35 · 608 阅读 · 0 评论 -
Appium Desktop下载
下载地址:https://github.com/appium/appium-desktop/releases原创 2020-05-10 21:37:32 · 3699 阅读 · 0 评论