首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS UI 自动化测试原理以及 Trip.com 的应用实践

XCUITest 原理详解 iOS UI自动化测试核心技术 2015 年,Apple 发布了 UI 自动化测试框架 XCUITest 并集成 Xcode7 中,而 iOS/macOS UI 自动化测试依赖两个核心技术...XCUITest 是集成 Xcode 中的测试框架,若想使用 UI 测试功能,可以创建 iOS 项目时勾选 Include Tests 选项,从而使项目具备自动化测试的能力。...接下来,我们创建一个简单 Demo 项目,来学习如何使用 XCUITest 框架编程,并进行 iOS UI 自动化测试。...让 App 支持辅助功能 使用 Accessibility Inspector 前文中提到 Apple 对于视图元素会默认审查能够通过 VoiceOver 播放文字的视图元素,而对于 UIImageView...而对于 Trip.com iOS 的冒烟测试具体实践,就是主项目中创建 UITest Target 编写简单的 UI 视图校验程序,并接入 GitLab Runner Pipeline,利用 xcodebuild

2.1K40

iOS自动化之WDA(WebDriverAgent)安装

1、WDA介绍 WebDriverAgent iOS 端实现了一个 WebDriver server ,借助这个 server 我们可以远程控制 iOS 设备。...你可以启动、杀死应用,点击、滚动视图,或者确定页面展示是否正确。...facebook的WDAiOS 10 时代苹果已经废弃了,目前依然更新的是Appium官方的WDA,官方链接如下:https://github.com/appium/WebDriverAgent,安装配置和...facebook类似,配置好签名证书即可,不需要修改代码,也不需要修改Bundle ID.如果想查看iOS的应用界面,安装使用Appium的Inspector即可 2、部署环境 OS: 11.6 Xcode...:13 (需要系统更新最新才能在appstore下载xcode) 3、安装步骤 1、安装基础依赖 brew install git brew install carthage 2、下载WDA 安装appiium

3.6K10
您找到你想要的搜索结果了吗?
是的
没有找到

如何使用MEATiOS设备采集取证信息

该工具旨在帮助安全取证人员iOS设备执行不同类型的信息采集任务,将来该工具会添加针对Android设备的支持。...iOS设备执行信息采集 -filesystem 执行文件系统采集 -filesystemPath 文件系统路径,需配合--filesystem...参数使用,默认为"/" -logical 执行逻辑采集,使用AFC访问内容 -md5 使用MD5算法获取哈希文件,输出至Hash_Table.csv...开启Verbose模式 支持的采集类型 iOS设备-逻辑采集 MEAT使用逻辑采集功能,将指示工具通过越狱设备的AFC提取可访问的文件和文件夹。...设备-文件系统 前提要求:已越狱的iOS设备、通过Cydia安装AFC2、Apple File Conduit 2 MEAT使用文件系统采集功能,可以允许该工具开启AFC2服务,并将目标设备所有的文件和文件夹拷贝至我们的主机系统中

1.6K10

Appium iOS 元素定位与操作

Appium 从 Appium 1.6 开始支持 XCUITest。因此对于iOS 9.2以下的系统需要使用UIAutomation方式定位,iOS 9.2以上的版本需要使用XCUITest定位。...考虑到目前iOS系统更新到了iOS13(截止到2019.12.19) iOS 9.2以下系统属于比较老旧系统,设备覆盖率相对较低,所以主要讲解基于XCUITest的元素定位方式。...一般初始化driver时也会指定automationName的值为XCUITest desired_caps['automationName']='XCUITest' 元素定位工具 Android...iOS元素类型与属性 元素常用类型 XCUITest 中,苹果已经为构成视图层次结构的 UI 元素提供了不同的类名。例如 XCUIElementTypeButton表示按钮类型元素。... iOS 的 UI 自动化中,使用原生支持的Predicate定位方式是最好,可支持元素的单个属性和多个属性定位,属性值还可以使用精确和模糊匹配,强烈推荐使用

4.1K20

iOS开发之使用Storyboard预览UI不同屏幕的运行效果

公司做项目一直使用Storyboard,虽然有时会遇到团队合作的Storyboard冲突问题,但是对于Storyboard开发效率之高还是比较划算的。...之前的博客中也提到过,团队合作使用Storyboard时,避免冲突有效的解决方法是负责UI开发的同事最好每人维护一个Storyboard, 公用的组件使用轻量级的xib或者纯代码来实现。...言归正传,接下来就介绍一下如何使用Storyboard来预览UI不同那个分辨率屏幕的运行效果,这就很好的避免了每次调整约束都要Run一下才能看到不同平面上运行的效果,今天的博客就来详述一下如何使用Storyboard...一、创建工程添加测试使用的UIImageView     创建一个测试工程,ViewController添加4个不同尺寸的UIImageView, 并且添加上不同的约束,最后添加上不同的文艺小清新的图片...,最终Storyboard的控件和约束如下所示。

2.2K80

appium中ios元素定位

1,accessibility_id 替代以前的name定位方式, iOS ,主要使用元素的label或name(两个属性的值都一样)属性进行定位,如该属性为空,也是不能使用该属性。...driver.find_element_by_class_name(‘XCUIElementTypeButton’) 3、xpath 由于 iOS 10开始使用XCUITest 框架原生不支持,定位速度很慢... iOS 的 UI 自动化中,使用原生支持的Predicate定位方式是最好,可支持元素的单个属性和多个属性定位,强烈推荐使用。...综上所述, iOS 的 UI 自动化中,使用原生支持的iOSNsPredicateString定位方式是最好,支持也是最好的。...5、iOSClassChain 仅支持 iOS 10或以上,这是 github 的 Mykola Mokhnach 大神开发,仅限 WebDriverAgent 框架使用,用于替代 xpath 的,但使用一阵子后

3.1K30

自动化-Appium-第一个Demo-原生(Java版)

,这个关键字的值必须是使用`instruments -s devices`得到的可使用的设备名称之一 // Android,这个关键字目前不起作用...,这个关键字的值必须是使用`instruments -s devices`得到的可使用的设备名称之一 // Android,这个关键字目前不起作用...// 被测应用的bundle ID // 用于真实设备中启动测试,也用于使用其他需要bundle ID的关键字启动测试 // 使用bundle ID真实设备执行测试时,你可以不提供`app`关键字...,这个关键字的值必须是使用`instruments -s devices`得到的可使用的设备名称之一 // Android,这个关键字目前不起作用...// 被测应用的bundle ID // 用于真实设备中启动测试,也用于使用其他需要bundle ID的关键字启动测试 // 使用bundle ID真实设备执行测试时,你可以不提供`app`关键字

2.1K30

自动化-Appium-第一个Demo-混合(Java版)

,这个关键字的值必须是使用`instruments -s devices`得到的可使用的设备名称之一 // Android,这个关键字目前不起作用...,这个关键字的值必须是使用`instruments -s devices`得到的可使用的设备名称之一 // Android,这个关键字目前不起作用...// 被测应用的bundle ID // 用于真实设备中启动测试,也用于使用其他需要bundle ID的关键字启动测试 // 使用bundle ID真实设备执行测试时,你可以不提供`app`关键字...方式二:通过ios_webkit_debug_proxy工具 首先将模拟器的应用程序打开,之后打开此应用显示的Webview页面; 之后Mac打开终端,输入启动代理命令 ios_webkit_debug_proxy...// 被测应用的bundle ID // 用于真实设备中启动测试,也用于使用其他需要bundle ID的关键字启动测试 // 使用bundle ID真实设备执行测试时,你可以不提供`app`关键字

2.4K30

自动化-Appium-第一个Demo-原生(Python版)

Retina 4-inch, Android Emulator, Galaxy S4 等等 # IOS,这个关键字的值必须是使用`instruments -s devices`得到的可使用的设备名称之一...Retina 4-inch, Android Emulator, Galaxy S4 等等 # IOS,这个关键字的值必须是使用`instruments -s devices`得到的可使用的设备名称之一...;或XCUITest用于IOS desired_caps['automationName'] = 'Appium' # 使用哪个移动操作系统平台 iOS, Android, FirefoxOS desired_caps...Simulator, iPad Simulator, iPhone Retina 4-inch, Android Emulator, Galaxy S4 等等 # IOS,这个关键字的值必须是使用...;或XCUITest用于IOS desired_caps['automationName'] = 'Appium' # 使用哪个移动操作系统平台 iOS, Android, FirefoxOS desired_caps

2K20

iOS中手势的应用1. 四类事件的主要方法2. 响应者链3. 手势识别功能(Gesture Recognizer)4. 手势的使用

iOS设备现如今大受欢迎的最重要原因之一就在于其开创了触控操作的潮流。发展到现在,无论是Android还是iPhone,现在APP与用户进行交互,基本都是依赖于各种各样的触控事件。...触摸事件.png 但是iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件。我们称之为“响应者对象”。...最终找到这个干活的控件,我们学术就叫做第一响应者对象。找到了负责处理的按钮之后如何给出相应处理呢?大概过程就是这样: button尝试处理事件。如果它不能处理事件,则将事件传递给其父视图。...如果这个上层视图还是不能处理事件,则将事件传递给视图所在的视图控制器。 视图控制器会尝试处理事件。如果这个视图控制器不能处理事件,则将事件传递给窗口(window)对象。...- iOS 3.2之后,苹果推出了手势识别功能(Gesture Recognizer),触摸事件处理方面,大大简化了开发者的开发难度 3.1手势识别器(UIGestureRecognizer) 为了完成手势识别

2.1K40

Material Design —卡片(Cards)

自上次参加完回音分享会后,我下定决心要洗心革面乖乖打基础,于是开启了这个part,争取两个月不间断更新,写完Material Design与iOS中的组件(顺便学学英语),以便今后使用的时候完全不虚...左:卡片有圆角、能有多个操作、可关闭/重现    右:是tile而不是卡片,无圆角、最多两个操作 ? 左:快速可浏览列表,适合展示无操作的同类内容    右:阻碍了快速浏览,且这些内容不能关闭 ?...不要让卡片带有过多无用的信息或操作。 内容层次 使用卡内的层次结构来引导用户注意最重要的信息。 例如,将主要内容放置卡的顶部,或使用排版来强调最重要的内容。 图像可以强化卡片中的其他内容。...但是,它们卡内的大小和位置取决于图像是主要内容还是用于补充卡片的其他内容。 背景图像 当文字放置纯色背景时,文字清晰度最高,且文字对比度足够高。 放置图像背景的文本应该保留文本的易读性。...支持的手势 卡片手势应始终卡片集合中实施。 支持的手势包括: 滑动手势(swipe gesture)可以每张卡片使用。限制视图内的轻扫手势,使其不会彼此重叠。

4.3K100

如何在iphone真机上自动化测试

1.模拟器太慢 模拟器的运行速度取决于PC的配置,如果PC使用了机械硬盘那么使用模拟器光是启动的时间就够泡一壶茶了。 2.模拟器某些方面往往达不到真机的真实水平。 碎片化严重。...4.真机调试更能清晰真实的反映出开发过程中出现的问题;而模拟器性能比较差,模拟器不一定能发现。 5.真机测试更能支持横竖屏都方便,有一些情况模拟机不行。...然后配置文件可以这么写: "automationName": "XCUITest", "platformName": "ios", "platformVersion": "12.4",...手动Build WDA 手动的配置,就是你要手工去build一个WDA在你的测试机器, "automationName": "XCUITest", "platformName": "ios",...我开发电脑一次性就搞好了。 然后Test, 最终在你的测试机上就会编译成功一个WDA.

2K20

基于Python+appium的ios自动化测试demo(更新中)

usbmuxd: stable 1.0.10 (bottled), HEAD libimobiledevice: stable 1.2.0 (bottled), HEAD npm 6.4.1 ios-deploy...localhost:8100/status 如果单纯WebDriverAgent运行成功,然后appuim没有反应,可能因为有些国产的iPhone设备通过手机的IP和端口还不能访问,此时需要将手机的端口转发到Mac...: 终端输入:iproxy 8100 8100 如果存在多个版本Xcode,安装brew包的时候,会出现兼容性问题,可以通过切换来处理 sudo xcode-select...switch /Applications/Xcode9.4.1.app sudo xcode-select --switch /Applications/Xcode.app 两个wda模块地址 1、命令行安装.../WebDriverAgent.xcodeproj 2、使用appium desktop的wda模块 /Applications/Appium.app/Contents/Resources/app/node_modules

3.7K20
领券