码迷,mamicode.com
首页 > 其他好文 > 详细

测开面试 | 自动化测试之工具篇

时间:2019-05-28 12:38:17      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:robot   test   webdriver   中文   alt   开发   one   测试框架   row   

一、Instrumentation(https://developer.android.com/reference/android/app/Instrumentation.html
1、 Instrumentation 原理是什么?

  • 通过直接调用被测应用的类实现自动化测试
  • 和被测应用处于同一个进程内
    技术图片

2、 Instrumentation 测试什么?

  • 功能测试
  • Activity 生命周期的测试
  • 模拟数据库操作的测试
  • 兼容性测试

3、 什么情况使用 Instrumentation?

  • 使用 Java Junit 框架
  • 需要进行白盒测试时
  • 需要使用 Mock 技术模拟系统对象时

二、UIAutomator(https://developer.android.com/training/testing/ui-automator
1、 UIAutomator 原理是什么?

  • Android UI 自动化测试工具
  • 不需要源码,基于 Java 开发语言
  • UiDevice, UiSelector, UiScrollable, UiObject, UiCollection

2、 UIAutomator 可以测试什么?

  • App UI 层的交互操作
  • 不需要源码,可以模拟跨进程过程
  • 基于 Java JUnit 框架,黑盒 UI 自动化

3、 如何识别 App 视图内的元素?

  • UiAutomatorViewer(/tools/bin/)
  • 可以识别元素的 id、classname、bounds 等

三、Selendroid&Robotium
1、 Selendroid 的原理?(http://selendroid.io/
Selendroid 四大组件:

  • Selendroid Client: WebDriver + 移动特性的实现
  • Selendroid Server: 一个 Instrumentation APK
  • AndroidDriver-App: 一个 WebViewActivity,即浏览器
  • Selendroid-Standalone: 大总管,负责准备环境
    技术图片

2、 Robotium 的原理?(https://github.com/RobotiumTech/robotium

  • 基于 Instrumentation 进行封装,实现的 Android 测试框架
  • 封装了 Solo 类库,提供自动化测试 API
  • 由于是基于 Instrumentation,测试时需要源码

四、Appium(http://appium.io/
1、 什么是 Appium?

  • 一个开源的移动端 UI 自动化测试框架

2、 Appium 的理念?

  • 不需要 App 源码
  • 不局限于语言或者框架
  • 接口统一,不需要重复开发
  • 必须是开源的

3、 Appium 相关的概念?

  • C/S 架构,Appium 核心是一个 Web 服务器
  • Session,客户端初始化 Session 与服务端交互
  • Desired Capabilities,初始化时的键值对组合
  • Appium Server,操作与驱动手机
  • Appium Client,支持多语言调用

4、 Appium 环境包含哪些内容?

  • Android SDK、JDK、Appium
  • PyCharm、Python 环境
  • 库:Selenium、Appium-Python-Client

5、 Appium 支持哪些开发语言?

  • Java、Javascript、PHP、Python、Ruby、Perl、C#、Object-C

6、 Appium 初始化时需要配置哪些内容?

  • platformName,目标设备平台(Android/iOS)
  • platformVersion,目标设备平台版本
  • deviceName,目标设备名称
  • appPackage,应用包名(Android)
  • appActivity,应用活动名(Android)
  • automationName,自动化驱动类型(Selendroid/Appium)
  • unicodeKeyboard,是否使用 Appium 输入法
  • resetKeyboard,是否恢复默认键盘

7、 Appium 测试 Native App 的原理?
技术图片

8、 Appium 测试 Hybrid App 的原理?
技术图片

9、 Appium 测试 iOS App 的原理?
技术图片

五、如何自动化测试 Native App?
1、 元素的定位、识别工具?

  • 第一个选择:UIAutomatorViewer
  • 第二个选择:Appium 的 Inspector

2、 定位元素的 API 都有哪些?

  • find_element_by_accessibility_id
  • find_element_by_id
  • find_element_by_name
  • find_element_by_xpath
  • find_element_by_class_name
  • find_elements_by_accessibility_id
  • find_elements_by_id
  • find_elements_by_name
  • find_elements_by_xpath
  • find_elements_by_class_name

3、 脚本的编写规则
LOVE 规则:

  • L:Locate 定位
  • O:Operate 操作
  • V:Verify 验证
  • E:Exception 异常的处理

4、 初始化注意事项

  • 1、 不需要指定 App 的包路径
  • 2、 默认使用 Appium 驱动
  • 3、 如果需要输入中文,需要添加输入法相关的配置

六、如何自动化测试 Hybrid App?
1、 元素的定位、识别工具?

  • 1、 Native 部分,UIAutomatorViewer 或者 Appium Inspector
  • 2、 WebView 部分,Chrome 浏览器的调试模式

2、 定位元素的 API 都有哪些?

  • find_element_by_id(HTML 页面中的 ID)
  • find_element_by_name
  • find_element_by_xpath
  • find_element_by_link_text
  • find_element_by_tag_name
  • find_element_by_class_name
  • find_elements_by_id
  • find_elements_by_name
  • find_elements_by_xpath
  • find_elements_by_link_text
  • find_elements_by_tag_name
  • find_elements_by_class_name

3、 脚本的编写规则
S-LOVE 规则

  • S:Switch 在 Native 和 WebView 之间切换
  • L:Locate 定位
  • O:Operate 操作
  • V:Verify 验证
  • E:Exception 异常的处理

4、 初始化注意事项

  • 需要明确指定驱动名称为:Selendroid
  • 需要明确指定 App 的路径(重签名用)

七、如何使用 Selenium 测试 WEB 页面?(https://www.seleniumhq.org/
1、 环境的准备

  • 工具:Pycharm、Chrome
  • 包:Selenium、Python
  • WebDriver:Chrome Driver/Firefox Driver/IE Driver 等

2、 元素识别工具是什么?

  • Firefox 或者 Chrome 的调试工具

3、 元素定位的方法?

  • find_element_by_id(HTML 页面中的 ID)
  • find_element_by_name
  • find_element_by_xpath
  • find_element_by_link_text
  • find_element_by_tag_name
  • find_element_by_class_name
  • find_elements_by_id
  • find_elements_by_name
  • find_elements_by_xpath
  • find_elements_by_link_text
  • find_elements_by_tag_name
  • find_elements_by_class_name

八、如何使用 Appium 测试 WAP 页面?
1、 环境的准备

  • IDE:PyCharm
  • 包:Python、Selenium、Appium-Python-Client
  • 工具:Appium、Chrome

2、 元素的识别

  • Chrome 浏览器调试 WAP 页面

3、 脚本的编写

  • 初始化时,指定 browsername 为:Browser
  • 自动化测试代码和 Selenium 相同

欢迎关注微信公众号"测试开发Stack"

测开面试 | 自动化测试之工具篇

标签:robot   test   webdriver   中文   alt   开发   one   测试框架   row   

原文地址:https://www.cnblogs.com/liushengchieh/p/10936453.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!