
-
Appium 测试,实现上下、左右滑动页面【Android,iOS 已验证】
2017-04-01 16:34:56Appium 测试,实现上下、左右滑动页面 原文:http://blog.csdn.net/liuy5277/article/details/48543225 作者:liuy5277 本人对原文做了部分修改,4个方法改成静态方法,这样使用的时候,不用new 设计一...Appium 测试,实现上下、左右滑动页面
原文:http://blog.csdn.net/liuy5277/article/details/48543225 作者:liuy5277
特别说明: 本文只适用于Appium 1.6.4及以下 ,请注意!
本人对原文做了部分修改,4个方法改成静态方法,这样使用的时候,不用new
说明: 这个方法是Android、iOS通用的,不过iOS需要修改下 AndroidDriver 为 IOSDriver
设计一个类 SwipeTo,4个静态方法(swipeToUp, swipeToDown, swipeToLeft, swipeToRight)代码如下:
package com.cheersqa; public class SwipeTo { public static void swipeToUp(AndroidDriver driver, int during){ int width = driver.manage().window().getSize().width; int height = driver.manage().window().getSize().height; driver.swipe(width / 2, height * 3/ 4, width /2 , height /4, during); } public static void swipeToDown(AndroidDriver driver, int during){ int width = driver.manage().window().getSize().width; int height = driver.manage().window().getSize().height; System.out.println(width ); System.out.println(height); driver.swipe(width / 2, height / 4, width /2 , height * 3 /4, during); } public static void swipeToLeft(AndroidDriver driver, int during){ int width = driver.manage().window().getSize().width; int height = driver.manage().window().getSize().height; driver.swipe(width * 3 / 4 , height / 2, width / 4, height / 2, during); } public static void swipeToRight(AndroidDriver driver, int during){ int width = driver.manage().window().getSize().width; int height = driver.manage().window().getSize().height; driver.swipe(width/4, height/2, width * 3 / 4, height / 2, during); } }
Appium在测试的时候,使用如下:
上滑 SwipeTo.swipeToUp(driver, 1000)
下滑 SwipeTo.swipeToDown(driver, 1000)
左滑 SwipeTo.swipeToLeft(driver, 1000)
右滑 SwipeTo.swipeToRight(driver, 1000)
左滑、右滑的补充说明:
有时候,上述 左滑、右滑 方法滑动幅度太小,针对有的app不能正确切换到相应的页面,滑动幅度需要调整下,如:
public static void swipeToLeft(AndroidDriver driver, int during){ int width = driver.manage().window().getSize().width; int height = driver.manage().window().getSize().height; driver.swipe(width -10, height / 2, width / 4, height / 2, during); } public static void swipeToRight(AndroidDriver driver, int during){ int width = driver.manage().window().getSize().width; int height = driver.manage().window().getSize().height; driver.swipe(10, height / 2, width* 3/4+10, height / 2, during); }
-
python和按键精灵自动化测试_IOS开发入门之iOS自动化测试需求实现(iOS按键精灵类似)...
2020-12-20 21:00:56本文将带你了解IOS开发入门之iOS自动化测试需求实现(iOS按键精灵类似),希望本文对大家学Ios有所帮助。需求分析:作为以需求为驱动的IT公司,有再奇怪的需求都不奇怪,所以“24小时循测第三方应用”这样的需求也可以...本文将带你了解IOS开发入门之iOS自动化测试需求实现(iOS按键精灵类似),希望本文对大家学Ios有所帮助。
需求分析:
作为以需求为驱动的IT公司,有再奇怪的需求都不奇怪,所以“24小时循测第三方应用”这样的需求也可以接受。业务需求重点为:
1.24小时循测
2.无人值守,自动完成
3.自动界面操作(点击、滑动、输入)
4.比较每个页面是否有bug显示
技术分析:
根据以上业务需求做技术分析:
1.Andriod上自动界面操作、截图可以使用内置adb命令来完成,一台PC链接多台手机,驱动adb命令完成。
2.iOS上在越狱手机上实现自动界面操作、截图,通过socket驱动完成。
技术实现:
1.adb驱动层没什么难点,网络上很多文章和技术文档。
2.iOS等于要实现一个“按键精灵”,现成资料和代码不多。
3.图片比较,可以使用OpenCV来实现。
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之IOS频道!
-
iOS自动化测试需求实现(iOS按键精灵类似)
2016-11-09 14:01:00作为以需求为驱动的IT公司,有再奇怪的需求都不奇怪,所以“24小时循测第三方应用”这样的需求也可以接受。业务需求重点为: 1.24小时循测 2.无人值守,自动完成 3.自动界面操作(点击、滑动、输入) 4.比较每个...需求分析:作为以需求为驱动的IT公司,有再奇怪的需求都不奇怪,所以“24小时循测第三方应用”这样的需求也可以接受。业务需求重点为:1.24小时循测2.无人值守,自动完成3.自动界面操作(点击、滑动、输入)4.比较每个页面是否有bug显示技术分析:根据以上业务需求做技术分析:1.Andriod上自动界面操作、截图可以使用内置adb命令来完成,一台PC链接多台手机,驱动adb命令完成。2.iOS上在越狱手机上实现自动界面操作、截图,通过socket驱动完成。技术实现:1.adb驱动层没什么难点,网络上很多文章和技术文档。2.iOS等于要实现一个“按键精灵”,现成资料和代码不多。3.图片比较,可以使用OpenCV来实现。代码开发:作为iOS开发者,"iOS按键精灵”开发的工作又落到我的肩上,从一开始的好无头绪,到现在完成“iOS按键精灵”开发,大概用了7个工作日。主要实现了全局点击、滑动、输入、截图功能。使用“TheOS”开发框架,将各个要实现的功能hook到系统层,如:Springboard.越狱开发真是个大坑啊,不过在不断填坑的工程中,了解到了常见的APP攻击技术,对自己以后做开发的项目可以做一些相应的安全。iOS按键精灵测试通过:iOS7+(越狱)转载于:https://www.cnblogs.com/bandy/p/6046723.html
-
ios测试重点
2021-01-18 15:55:21iOS测试重点 程序中易出现Bug的情况: 主要的功能是否实现 按钮位置是否一致,名称显示完整与否,按钮名字是否与其功能相对应 界面(整体风格,界面切换,处于不同界面相对应的菜单栏选项显示) 增删改查时弹出...iOS测试重点
程序中易出现Bug的情况:- 主要的功能是否实现
- 按钮位置是否一致,名称显示完整与否,按钮名字是否与其功能相对应
- 界面(整体风格,界面切换,处于不同界面相对应的菜单栏选项显示)
- 增删改查时弹出窗口有无,取消或确定按钮的功能
- 本地化测试(更改语言后文字正确与否,按钮名称显示完整)
- 连接网络时是否有转圈等待,等待时间是否过长
- 帮助文档段落是否对其,字体格式是否一致,是否可以编辑
- 输入信息时键盘的的模式,弹出位置是否一致
- 软件的触摸性是否良好,是否容易使用
10.多次点击(或滑动)某物(按钮,图片等)是否会崩溃 - 按钮等滑动速度的快慢是否会崩溃
- 文件的大小,格式
- 日期的测试(不合法日期),列表信息对齐,格式是否一致
- 声音的有无
- 程序是否有默认图片,是否清晰,大小合适
- 需要输入名称等时信息为空或空格
- 设置密码时是否可以为空,是否是明文
- 存在下拉框时是否符合苹果特点
- 对数字为0是否需要进行处理
- 界面刷新及时与否
- 系统兼容性 :一定要在ios5.0和ios4.3上都进行测试
- 有可滑动的tableView,一定要讲内容填充超过一屏,滑动查看有无问题
本地化测试:需要本地化的程序,一定切换中英文进行测试(其中包括拼写错误、措辞准备、语法错误等),某些小按钮,例如返回按钮,操作编辑按钮,忘记翻译成中文或者经过一些操作而弹出的提示信息,没有翻译成中文 - 程序的帮助文档:可以根据程序的帮助文档进行操作,是否能达到帮助用户使用的目的 (包括中英文)
- 多个页面的程序:多次切换页面是否出现程序崩溃或者程序反映变慢
- 上传、下载的程序:测试上传、下载的文件大小限制,
- 文件编辑程序:(比如:删除、复制、移动等等)测试文件大小的限制,即多大文件会 出现程序崩溃。
- 需要连接网络的程序:测试程序对网络中断等问题的处理
- 编写测试用例时尽管功能很少也尽量去分模块,一个模块一个模块写,尽量全面(iOS平台app测试用例 : http://wenku.baidu.com/view/c2198112a8114431b90dd81b.html)
- 有键盘输入的地方,要测试输入足够多的字符,键盘是否遮挡当前输入的内容,(iOS4 和iOS5都要测试)
- 中英文下的产品名称是否正确
- 产品发布之前要打包成ipa文件装机测试
- 在某条项目上向右滑动,会出现快捷方式,正确显示和本地化
- 程序的反应速度,按钮点击后的反应程度
- 程序使用(操作)时间较长时会不会卡住,反应慢
- 主要功能,测试能想到的所有可能发生的状况,比如突然关闭啊,不保存就返回啊
- 各个页面的旋转屏幕,特别是iPad的客户端
- iOS中尽量不要出现长按菜单的功能,这是android上的默认效果,iOS上长按大多是进入一个特别的状态
iOS使用技巧
1>安装ios的软件测试包:
正规途径是通过itunes, 通过itunes同步, 但是需要授权一个电脑,一个设备最多可以授权5台电脑,灵活性不高。
再就是越狱的设备,可以通过91助手for iphone、Itools 等直接安装(如果拥有开发者账户,则可以免除越狱)
2>iOS的log抓取
iOS有自己记录crash的功能,通常有Crash的情况下,就会有一个文件存储在手机文件中,通过itunes同步可以读取到文件
3>iOS的截屏:
可以使用手机自带的方式Home+Power键截屏,也可以使用手机助手的截屏功能
4>iOS的Home键:
这个键使用短按、短按两次,都会有不同的功能调出,测试时可以全面使用
5>Instruments(需要iOS 电脑支持)
用于动态调追踪和分析OS X和iOS的代码的性能分析和测试工具;
支持多线程的调试;
可以用Instruments去录制和回放,图形用户界面的操作过程;
可将录制的图形界面操作和Instruments保存为模板,供以后访问使用;
6>iOS 兼容性的测试:(相对Android系统兼容性较少)
Ipod(3、4、5)、iphone(4、4S、5)、ipad(1、2、3)
iOS版本(4、5、6)
有锁/无锁
越狱/未越狱
多线程
内存
标准化控件(Ios6.0接口有变动)
7>性能
iOS的内存管理是优先保证当前,有多少用多少,超过上限不够用直接关闭app,也就是常说的crash,自动退出,所以内存回收方面需要注意,也可以在开发机上直接监控内存使用量,不过内存监控只能看到整个app的使用量,看不到具体模块的使用,而os4.0以上每个关掉的app系统会自动保存一个最小镜像,当内存不够用的时候会连此镜像都关闭. 这就是有时候开启app能看到关闭前的界面有些只能看到loading页面的原因,特别是游戏类的app会有这样的现象,另外,越狱的机器的可用内存会少很多.
8>CPU 部分
CPU部分就简单了,iOS的机制保证了CPU占用量很高的情况很少出现,一般多数据多线程时会有卡和停顿的状况就是CPU不够用了,这也只能靠设计上来避免了。
9>网络部分
主要是2G/3G/wifi的速度,但是这个性能指标要根据不同的情况来考虑,一般来说对比同类app的效果即可 -
ios UITableView实现单击提示,滑动删除,多选行等操作
2013-08-02 15:36:38ios UITableView实现单击提示,滑动删除,多选行等操作。iphone 6.1测试通过。 -
小程序列表左滑效果在IOS呈上下滑动影响样式
2019-01-29 08:44:00在实际开发中,很多时候,苹果手机对小程序不够友好,类似上图,在实现小程序列表左滑效果的时候,安卓手机上测试都很正常,也很流畅,但是在苹果手机上却会出现这样的bug,滑动的时候,列表不但可以左滑,还可以... -
ios 中如何应对UIScrollView快速滑动(暴力用户,暴力测试)
2019-12-12 13:54:101.实现UIScrollViewDelegate 开始滑动: - (void)scrollViewWillBeginDecelerating:(UIScrollView*)scrollView 滑动过程: - (void)scrollViewDidScroll:(UIScrollView*)scrollView 滑动结束: - (void)... -
iOS客户端monkey测试
2017-03-26 21:30:13简介monkey测试指的是,app根据系统随机产生操作指令,进行各种随机的操作,测试...实现方式实现思路有两种: 1.用js脚本在instrument中控制app的点击行为。可以参考 https://my.oschina.net/bluedreamjn/blog/53604 -
非越狱iOS设备的远程控制实现原理
2019-06-25 15:41:25该框架通过在设备端启动一个HTTP Server提供一系列API接受操作指令来代替固定的操作代码,除了启动应用、点击和滑动页面元素,WebDriverAgent还提供截图、页面元素...,iOS的appium测试框架就是基WebDriverAgent实现的... -
LRecyclerView侧滑iOS阻塞效果不完整的解决办法
2021-01-20 10:04:30最近项目中用到下拉刷新与侧滑删除需要同时实现的情形, 所以对LRecyclerView进行了一些了解, 在测试侧滑功能时, 发现iOS阻塞效果不完整, 即当条目处于侧滑状态时, 点击该条目的非侧滑位置时无法自动关闭, 于是对... -
iOS侧滑菜单实现
2015-10-22 19:54:15这个是参照鸿洋的android侧滑菜单实现的,同样利用scrollview实现,很简单,这是鸿洋侧滑的实现链接打造最简单的自定义侧滑菜单第一种测滑#import <UIKit/UIKit.h>@interface SlideMenu : UIScrollView @property ... -
iOS亮屏解锁命令【iOS自动化测试】--使用ssh
2018-10-10 11:22:00AppSync for iOSx(可安装破解软件)、afc2add补丁(可访问整个iOS设备的系统文件)、openssh(可打开ssh服务)、open(可执行open 启动app的命令)、Activator(实现手势)、SimulateTouch(模拟点击滑动)、... -
IOS中实现UITableView的各种手势操作
2013-04-18 22:38:20基于手势操作的UITableView,实现cell左右滑动,点击cell扩展等效果。划动列表cell的动作有挺不错的bounce(弹性)效果。 编译测试,适用环境:Xcode 4.5, iOS 5.0 以上。 -
仿swipe实现wap滑动导航
2018-03-02 16:13:33进入测试阶段,收到一个bug,就是在ios11-webview中,页面滑到底部,重新回到顶部时,滑动导航会忽闪忽现。仔细查阅官方文档,并没有什么卵用。最后只好用js实现wap滑动导航。不说了,上代码!C... -
ios开发之检测UIScrollView的滚动方向
2012-08-25 17:26:18有时候我们需要检测当前UIScrollView的滑动方向来做出相应的处理,可以借助UIScrollView的delegate函数来实现, 下面的例子可以检测到UIScrollview当前是向上滑动还是向下滑动: int _lastPosition; //A ... -
解决LRecyclerView侧滑iOS阻塞效果不完整问题
2016-12-26 01:21:45最近项目中用到下拉刷新与侧滑删除需要同时实现的情形, 所以对LRecyclerView进行了一些了解, 在测试侧滑功能时, 发现iOS阻塞效果不完整, 即当条目处于侧滑状态时, 点击该条目的非侧滑位置时无法自动关闭, 于是对... -
iOS scrollview的实现
2015-12-26 20:12:581.准备工作,新建一个project 2.拖出一个 scrollview 3.在scrollview中加入一个imageview并插入图片,方便验证滑动效果。 4.设置 5.选中scrollview, 6.设置取消选中use auto layout 7.测试,已经可以滑动了,附上... -
测滑菜单MenuDrawer的使用以及解析
2015-02-11 20:15:18在安卓中左右侧滑菜单的使用用的比ios多得多,可能是谷歌带的头吧,几乎所有的谷歌应用都有侧滑菜单。谷歌没有开放这个源码,在一个成熟的开源代码出现之前,大家都是各自为战,偶尔能看到一个勉强实现了的。... -
iOS开发问题----UIPickerView判断时候正在滑动的问题(检测“滚轮”启动和停止)
2016-12-16 11:50:30本问题做产生的场景是在实现使用pickerView级联选取地址信息,并且在pickerView上部有工具栏辅助选取,在第一次选完地址再次修改地址时,快速滑动秒选确定按钮,地址显示不对的问题,解决办法为在点选确定辅助按钮的... -
【开源项目5】测滑菜单MenuDrawer的使用以及解析
2016-01-03 19:49:56在安卓中左右侧滑菜单的使用用的比ios多得多,可能是谷歌带的头吧,几乎所有的谷歌应用都有侧滑菜单。谷歌没有开放这个源码,在一个成熟的开源代码出现之前,大家都是各自为战,偶尔能看到一个勉强实现了的。... -
iOS-XIB方式实现一个既能手动又能自动无限滚动的UIScrollView
2018-02-01 14:34:06实现一个既能手动又能自动无限滚动的scrollView,有页码,有按钮(点击按钮,scrollView消失) 2.每个界面出现时,五秒内用户不手动滑动界面,就会调用自动滑动界面的方法自动切换到下一张图片 3.当用户在5s内在... -
android左右滑动实现翻页_AI课全自动化实现落地
2020-12-26 14:06:35一、项目背景小狸 AI 课作为掌门新的流量入口,需要重点保障产品的质量。测试是产品研发过程中...需要对产品的 iOS 和 Android 平台、不同分辨率以及线上多版本进行测试;这样下来测试的工作量成几何倍数增长,因此...
-
深究字符编码的奥秘,与乱码说再见
-
Tickets(dp)
-
自动释放数据库句柄和结果集(RAII机制)
-
leetcode 203. 移除链表元素
-
产品需求分析神器:KANO模型分析法
-
第1关上 将错就错.mp4
-
Mac启动Eclipse提示Failed to create the Java Virtual Machine
-
计算重复出现的单词和次数
-
如何区分 HTML 和HTML5?
-
scala:分别使用懒汉式和饿汉式实现单例模式
-
Java 类和对象
-
什么是计算机?
-
java数独题库高效生成算法代码
-
电影记录-源码
-
Mycat 实现 MySQL的分库分表、读写分离、主从切换
-
【Python-随到随学】 FLask第一周
-
朱老师C++课程第3部分-3.6智能指针与STL查漏补缺
-
Java并发之CompletionService详解
-
分布式存储系统中的异构感知数据再生
-
程序员必修基础套餐课