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

Posted liushengchieh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了测开面试 | 自动化测试之工具篇相关的知识,希望对你有一定的参考价值。

一、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 支持哪些开发语言?

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"

以上是关于测开面试 | 自动化测试之工具篇的主要内容,如果未能解决你的问题,请参考以下文章

想放弃测试开发了,4年经验去面试10分钟结束,测开这么难了?

测试面试题集锦| 自动化测试与性能测试篇(附答案)

面试阿里测开岗失败后,被面试官在朋友圈吐槽了......

测开必备—Flask网站制作

7年测试经验分享 —— 我在 Z 厂的6个月工作总结,送给迷茫中的你

软件测试面试宝典「Linux 数据库 测试工具 自动化 性能测试」