一.前言 在做App自动化测试时,我们会遇到如上图所示的列表数据页面左滑删除场景,一般可以通过location.rect方法获取对应列表的元素坐标,然后使用TouchAction或者swipe滑动需要的元素,这种通过坐标滑动的方式只能适用于原生App环境,webview环境获取的坐标与屏幕像素点不一致,具体介绍可以看我博客的上一篇文章. Webview环境处理这种问题,可以使用TouchActions里面的flick_element()方法. 二.用到的方法 TouchActions里面的f…
一.遇到的问题 在做移动端的UI自动化测试时,经常会遇到上图所示的搜索框,这里有个麻烦就是搜索框没有"搜索"按钮,UI自动化测试时不能确认搜索. 要解决这个问题,我们可以通过 driver.press_keycode('66') 方法模拟键盘回车,具体的使用方法请参考: http://testingpai.com/article/1595507207594/comment/1595559375540 但是这种方法只能适用于Android环境,iOS环境不能使用.由于我是在Webview…
app里面页面有原生和webview的,或者H5的 1.手机百度搜索结果页面 手机百度,点击搜索输入框,输入关键字点击搜索,出来的搜索结果页面,无法通过UI automator viewer来定位元素. 移动框选区域,发现无法框选局部元素,右侧也不会显示元素的id class信息.看到右侧红圈那个webview没,说明这个页面元素不是native_app,不是原生的.网上很多人写了关于这个文章的解决方案,但是都没有写清楚.结论就是,如果你app应用市场下载的app,就无法定位元素,是的,没有办法…
在实际应用中,如果存在多个相同元素,包括属性相同时,一般会选用这种方式,当然如果定位属性唯一的话,也是可以使用的,不过这种方式没有像id,tag,name等容易理解,下面讲下xpath定位元素的方法 / 从根节点选取 // 从匹配选择的当前节点选择 @ 选取属性 * 匹配任何元素节点 @* 匹配任何属性节点 我们就以百度首页右上一排的元素来定位,一般来说通过find_element_by_link来定位,这里我们只介绍xpath来定位的方式 我们查看下原始的百度页面中tag='a',class=…
css方式定位的方法也有很多,相较于xpath更灵活一点,下面就介绍下使用方法(以百度输入框为例) 1.通过tag来定位,可以写成如下: driver.find_element_by_css_selector('input').click() 这里要说明的是tag为input的必须唯一才能这么写,否则可以用其他方式定位 2.通过id来定位,可以写成如下: driver.find_element_by_css_selector('#kw').click() id前面加个#即可,很简单,也可以和ta…
前两天分别讲述了UI自动化测试基础以及对页面元素该如何进行定位,这一篇自然就是对定位到的页面元素对象进行相应操作啦. 阅读目录 1.常用操作元素对象的方法 2.鼠标事件操作 3.键盘事件操作 4.WebElement接口常用方法 5.设置等待时间 6.打印验证信息 7.定位一组对象操作 8.层级定位操作 9.定位frame中对象操作 10.alert/confirm/prompt处理 11.下拉框处理 12.select菜单处理 1.常用操作元素对象的方法 webdriver中常用的操作元素的方…
在实施app自动化的时候,我们需要知道app 的启动activity和页面元素信息,以此启动app和定位页面元素,那么如何在没有源码的情况下找打他们呢?当然是有好的工具啦,有Android sdk自带的工具可以很好的帮助我们解决这个问题. 1.获取启动类 aapt命令(该工具位置:C:\Users\...\AppData\Local\android\Sdk\build-tools\24.0.1),配置环境变量后可以在cmd命令行打开. cd进入apk的下载目录 使用命令:aapt dump ba…
1. 关键字驱动框架简介 2. 工程结构说明 3. 工程代码实现 action 包  page_action.py business_process 包 case_process.py data_source_process.py main_process.py util 包 global_var.py find_element_util.py excel_util.py ini_reader.py email_util.py datetime_util.py log_util.py repor…
def swipe_ele_left(self, ele, dur=800): """ 基于控件元素左滑操作 :param ele: 控件元素 :param dur: 在多少时间内完成滑动动作(单位:ms毫秒) :return: """ start_x = int(ele.rect["width"]) - 20 end_x = int(ele.rect["x"]) height = int(ele.rect…
前言 android sdk里面自带的uiautomatorviewer.bat可以查看手机app上的元素,但是不太好用,网上找了个大牛写的weditor,试用了下还是蛮不错的 python环境:3.6 weditor环境准备 使用pip安装weditor,github地址https://github.com/openatx/weditor pip install --pre weditor 创建桌面快捷图标 python -m weditor --shortcut 创建完成后,桌面会出现一个W…
顾铮,10年+测试及测试开发相关经验,2014年加入京东,曾主导设计开发UI测试框架,参与CI测试平台建设,现负责iOS侧的工具,框架建设.在UI自动化,性能测试,单元测试方面有较深入研究,在App,web端等有较丰富的测试开发和设计经验. >>>> 写在前面 关于UI测试的文章,多数是通过架构的演进,或是重构,或是推翻重做来讲述的.今天我想讲述我的“一步到位”的测试框架设计.当然,这个“一步到位”是加引号的,并不是说没有持续的优化或改进,而是指基础结构的稳定:这个“一步到位”是基…
修改了 BeautifulReport源码中的一些内容<附:BeautifulReport--适用于unittest自动化测试的可视化报告>; 1.生成截图时,原来的img文件夹必须在项目根目录下,做了调整; 2.生成的截图无法在html报告上展示,老是会报路径错误,检查发现源码中在做判断时少加了system()方法才导致错误的出现; 源码github截图 修改后截图 简单的登录功能实现,懂车帝app为例; 1.页面元素封装; page_car.py from common.basics im…
本文系博主原创,未经许可不得转载.如未经本人同意,私自转载或盗取资源提供下载,本人保留追究其法律责任的权利. 调试基于WebView的Hybrid App最舒服的工具当然是Chrome自带的开发者工具,其中有我们熟悉的Dom树调试,JS调试,Network监视等等功能. Google提供的调试Android上WebView的步骤: 开启手机上的USB调试功能 打开Chrome浏览器,地址栏输入:Chrome://inspect,回车 Chrome会自动检测手机上打开的App,并列出可调试的Web…
2014年的最后一天,以一篇短文纪念一下. 经常看到有同学说UI自动化测试定位难,找不到北.这话是不错的,定位是难,灵活且复杂,需要经验加技术,但是有写东西是可以提炼出来作为思想去推而广之的. 简单来说,UI元素定位思想应该如下: 大道至简 大道至简指的是有明显特征的元素一定要用明显的特征去定位.比如有id有name的元素,就不要舍近求远,一定要用最简单的办法去定位. 分而治之 一般来说,良好的html代码页面结构是很清晰的.很多同学在用class定位的时候经常会发现页面上有很多同名class,…
转载地址:http://blog.csdn.net/testman930/article/details/50799532 问题描述 在测APP的业务流,WebView和Native模式耦合在一起.例如:WebView >> Native >> WebView >> ...... Appium貌似有个问题,从WebView切换到NATIVE后,chromedriver可能会把第一个WebView的缓存驻留在内存中,即便用driver.close()方法关闭当前上下文,也…
前言 现在有很多App都是Hybrid的,即有原生的页面又有Webview的页面,元素的可以通过uiautomatorviewer工具 进行控件元素的定位,Webview页面的则无法通过此方式定位,而是需要Chrome浏览器来协助定位. Webview控件元素定位 1.在手机中打开当前app的webview界面,使用usb连接电脑后, 2.在PC端的Chrome浏览器上输入:chrome://inspect/#devices(网络需FQ才可使用) 3.点击Webview里的inspect,即可弹…
对于自动化测试,尤其是UI的自动化测试.是很多做黑盒功能测试的同学,入门自动化测试一个最为直观的或者说最容易理解的途径之一. 对于手工测试和自动化测试的优劣,网上有很多论述,在这里不作展开讨论.但是,让测试人员解放生产力,提高效率,把精力关注与最为重要的核心业务逻辑与测试设计上,是每个测试团队所必需要关注的.因此,在适当的范围内开展自动化测试,是可以提高整个测试团队的生产率的. 对于Selenium,这个东西是一个浏览器应用程序测试工具.之所以选择它做WebUI的自动化测试主要是因为它有以下两大…
appium操作真机打开app后无法定位页面元素:例如微信或者支付宝支付时,手机的安全控件会对支付环境进行保护,会断掉当前appium与真机的链接,导致连接失败,无法定位到页面元素,在做ui自动化之前尽量关闭手机上的保护程序或者杀毒软件,以免造成不必要的麻烦.…
目录 操作步骤 Python操作该混合App代码 Appium在操作混合App或Android App的H5页面时, 常常需要定位H5页面中的元素, 传统方式是 翻墙 + 使用Chrome://inspect来定位元素, 环境准备相当繁琐, 不仅需要想办法翻墙, 而且还需要Android设备安装Google框架以及手机版Chrome浏览器以及相应的chromedriver. 最近发现使用Appium Inspector即可实现H5页面元素的定位, 不需要额外安装任何软件. 操作步骤 启动夜神模拟…
一.摘要 本篇博文将介绍自动化测试实现页面元素.页面对象及测试代码分离在自动化框架中的实现 二.解析页面元素定位信息 首先,将页面元素与实际的代码分离,首先我们将页面元素定位信息和定位表达式保存在属性文件中,例如我们PaaS平台提供Mysql服务的页面,在工程中新建一个名为MysqlService.properties的文件,文件中保存内容类似如下: [MySQL数据库服务] [MySQL数据库服务-列表] paas.mysql.refreshbutton=xpath>//*[@id='app'…
9 webview查找元素 9.1 webview 简介 WebView是android中一个非常重要的控件,它的作用是用来展示一个web页面.它使用的内核是webkit引擎,4.4版本之后,直接使用Chrome作为内置网页浏览器. 9.2 移动端应用 移动端,一般分为三种应用: Native应用:就是安卓的原生应用,普通APP.文件自带的文件管理.设置等APP Web应用:需要依托浏览器展示的网页应用,比如微信里的公众号.商城 混合应用:也就是结合了原生和网页应用,在原生应用中嵌入网页.很多A…
悬浮下拉框 的设置选择 下拉框的选择 显性等待 双击, ActionChains类的方法行动链 提示框 双击,右击 双击用到行动连,提示框用到Alert的类 右击用到的也是行动连 UI自动化测试 #handle手柄,current当前,frame框架 # 下载安装好浏览器驱动from selenium import webdriver         #导入浏览器驱动import time as tdriver=webdriver.Chrome() #获取当前测试地址 current-url 获…
在第一节中,我们已经成功打开了页面,但是自动化测试必然包含了表单的填写与按钮的点击. 所以在第二章中我以博客园为例,完成按钮点击,表单填写 还是以代码为准,先上代码: package com.ryan; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.Chrome…
在公司的app里面嵌入了一个h5页面,h5页面有个使用图片上传功能,上传图片出现闪退的现象 问题描述:vivo手机,在app内的wap页面使用上传图片的功能,在选择好图片点击确认按钮后,出现退出整个webview,回退到app该wap页面的入口页面,且app自动刷新了该入口页面 如果在相册内直接点击拍照,拍好后点击使用照片,就不会出现退出webview的现象,且在这之后点击上传图片,使用相册里面的图片上传也不会出现退出webview的现象 原因:vivo.oppo等部分android手机低于某个…
ios测试的app测试包,真机设备需要开发者证书并且将测试机的udid加入到pp文件文件,configruation 要求为debug模式的ipa包, 1.苹果手机的UDID, a.通过 xcode-window-Devices and Smulators b .安装 ios-deploy 后,可以在terminer命令 ios-deploy -c 2.ios app 的H5 页面,查看元素信息,使用工具chrome inspect ,使用前需要先安装 remotedebug_ios_webki…
python+appium自动化测试系列就要告一段落了,本篇博客咱们做个小结. 首先想要说明一下,APP自动化测试可能很多公司不用,但也是大部分自动化测试工程师.高级测试工程师岗位招聘信息上要求的,所以为了更好的待遇,我们还是需要花时间去掌握的,毕竟谁也不会跟钱过不去. 接下来,一起总结一下APP UI自动化测试的思路吧. 一,开发语言选择 通常用于自动化测试的编程语言有:Python.Java.Javascript.Ruby.C#.PHP等.一般我们会选择自己熟悉的编程语言来编写自动化脚本,但…
1.看布局边界(在手机侧观察) 开发者选项->显示布局边界,页面元素很多的情况下布局是一整块的是h5的,布局密密麻麻的是原生控件.页面有布局的是原生的,否则为h5页面.(仅针对安卓手机试用)如下图所示: 参考连接: http://www.mamicode.com/info-detail-1440950.html…
最近工作中遇到游戏APP需要实现UI自动化测试,这个app中真的是典型的混合App,有Android原生控件,有webview控件,以及游戏操作页面.研究了Appium,发现appium实现跨应用操作很困难,研究了好几天也没找到实现的方法.后来在公司大佬的带领下,接触到了atx这个自动化的框架.今天来说一下,使用atx,uiautomator2,pytest,selenium 来实现混合App的UI自动化及生成测试报告. 一.环境准备 本人使用的是系统是Mac,所以接线来的都是在Mac电脑上进行…
第七章.PC端UI自动化测试 UI自动化测试又分为:Web自动化测试,App自动化测试.微信小程序.微信公众号UI层的自动化测试工具非常多,比较主流的是UFT(QTP),Robot Framework.selenium 等 Web自动化比较好的实现方式是使用selenium框架.选择selenium进行Web测试 (一)工具介绍 1.UFT(QTP) Unified Functional Testing (QuickTestProfessional), 缩写UFT.最初是Mercury Inte…
一.实现数据与代码分离,维护成本较低,先看看自动化结构,大体如下: testyaml管理用例,实现数据与代码分离,一个模块一个文件夹 public 存放公共文件,如读取配置文件.启动appium服务.读取Yaml文件.定义日志格式等 page 存放最小测试用例集,一个模块一个文件夹 results 存放测试报告及失败截图 testcase 存放测试用例 runtest.py 运行所有测试用例 运行的结果: 三.yaml格式介绍 element_info:定位元素信息 find_type:属性,i…