APP、Web自动化测试面试题

news2024/12/23 20:48:44

App/Web自动化的面试题
备注:一般面试的时候是结合简历上的项目一步一步深入进行问的问题,只要你实际做过一个项目的,加上自己面试准备下,问题不会太大

【APP自动化问题:1.3.6.10.11.12.13.14.19】

【Web自动化问题:20.21.22.24.25.26.29.31.32.33.34.】

【共有问题:2.4.5.7.8.9.15.16.17.18.】

1、目前主流的APP自动化测试框架,各个自动化适合的语言

参考点:appium macaca、robotium、UiAutomator

2、你对单元测试框架了解多少

参考点:unittest、testng、nose

3、app自动化,简述一下这几种自动化框架的异同

4、定位方式有哪几种?一般如何选择

参考点:ID/className/Name/LinkText/PartialLinkText/Xpath/CSS selector

5、UI自动化能发现多少Bug

参考点:UI自动化的目的不是为了发现多少Bug,主要是为了减轻重复的基础操作和线上监控的作用

6、monkey属于自动化吗?

参考点:monkey不属于严格意义上的自动化,monkey是生成用户或系统的伪随机事件,在屏幕上触发随机点击事件

7、谈谈你们的自动化是怎么搭建的?

8、你们在自动化过程中遇到了哪些问题

9、你们一般对什么case会进行自动化,自动化一般在哪个阶段进行

参考点:主要是主流程中比较容易实现的进行自动化,一般在集成阶段进行该版本的自动化监控,平常的话会一直跑线上监控的

10、robotium可以跨进程吗?你能简述一下吗?

11、app自动化你们一般用什么工具定位元素?

参考点:Uiautomatorview和appium的客户端

12、您需要一台服务器机器来运行Appium上的测试吗?

参考点:不,您不需要服务器机器在Appium上运行测试。 Appium促进了一个2层架构,其中测试机连接到运行Appium的测试服务器并自动化整个事情。您可以在运行测试的同一台机器上运行Appium。

13、使用Appium可能遇到的错误是什么?

参考点:

错误1:需要以下所需的功能,但不提供:设备名称,platformName

错误2:找不到adb。请使用Android SDK根目录路径设置ANDROID_HOME环境变量

错误3:openqa.selenium.SessionNotCreatedException:无法创建新的会话

错误4:如何在移动应用程序中查找DOM元素或XPath?

详情见:https://www.jianshu.com/p/53d8a0f0e35c

14、简述Appium的原理?

参考点:Appium是使用Node.js平台编写的“HTTP Server”,并使用Webdriver JSON线协议驱动iOS和Android会话。 因此,在初始化Appium Server之前,必须在系统上预先安装Node.js 当Appium被下载并安装时,在我们的机器上设置一个暴露REST API的服务器
它从客户端接收连接和命令请求,并在移动设备(Android / iOS)上执行该命令,
它响应HTTP响应。 再次,为了执行此请求,它使用移动测试自动化框架来驱动应用程序的用户界面。 框架像Apple Instruments for iOS(仅适用于Xcode 3.0或更高版本的OS X v10.5及更高版本)适用于Android API的Google UIAutomator 16级或更高版本

Selendroid for Android API等级在15以下。

15、目前你们用的自动化工具版本号是多少?

16、元素等待的3种方式简述一下,并且你平常用的是哪一种?

17、断言是什么

18、测试报告你们用的是什么框架?

19、app自动化 如何控制在多台设备上执行?

20、selenium的原理?

21、selenium 如何控制多个浏览器执行?

22、robotframework是什么?和selenium的关系是什么

23、你们目前用的py版本是多少的?2.X和3.X的异同?

24、selenium中如何保证操作元素的成功率?

参考点:- 添加元素智能等待时间 driver.implicitly_wait(30)

try 方式进行 id,name,clas,x path, css selector 不同方式进行定位,如果第一种失败可以自动尝试第二种

-Selenium保证元素成功率是通过元素的定位,当然它的定位方法很多,一定能有合适的。但是在自动化工程的实施过程中,高质量的自动化测试不是只有测试人员保证的。需要开发人员规范开发习惯,如给页面元素加上唯一的name,id等,这样就能大大地提高元素定位的准确性。当然如果开发人员开发不规范,我们在定位元素的时候尽量使用相对地址定位,这样能减少元素定位受页面变化的影响。只要我们元素定位准确,就能保证我的每一个操作符合我的预期

25、如何提高selenium脚本的执行速度?

参考点:如网速,操作步骤的繁琐程度,页面加载的速度,以及我们在脚本中设置的等待时间,运行脚本的线程数等。所以不能单方面追求运行速度的,要确保稳定性,能稳定地实现回归测试才是关键。

我们可以从以下几个方面来提高速度:

一,减少操作步骤,如经过三四步才能打开我们要测试的页面的话,我们就可以直接通过网址来打开,减少不必要的操作。

二,中断页面加载,如果页面加载的内容过多,我们可以查看一下加载慢的原因,如果加载的内容不影响我们测试,就设置超时时间,中断页面加载。

三,在设置等待时间的时候,可以sleep固定的时间,也可以检测某个元素出现后中断等待也可以提高速度。

四,配置testNG实现多线程。在编写测试用例的时候,一定要实现松耦合,然后在服务器允许的情况下,尽量设置多线程运行,提高执行速度。

26、selenium2.X和3.X的异同?

27、什么是持续集成?

持续集成源于极限编程(XP),是一种软件实践,软件开发过程中集成步骤是一个漫长并且无法预测的过程。集成过程中可能会爆发大量的问题,因此集成过程需要尽可能小而多,实际上持续集成讲的是不断的去做软件的集成工作。持续集成,最简单的形式是包括一个监控版本控制(SVN等等)变化的工具。当变化被发觉时,这个工具可以自动的编译并测试你的应用

28、什么是page object设计模式?

通过分离测试对象和测试脚本的抽象来实现的

29、selenium中下拉框怎么定位?

30、你觉得自动化测试最大的缺陷是什么?

参考点:-不稳定

-可靠性

-不易维护

-成本与收益

31、Selenium是否支持桌面应用软件的自动化测试。

Selenium不支持桌面软件的自动化测试,Selenium是根据网页元素的属性才定位元素,而其他桌面软件自动化测试工具是根据桌面元素的位置来定位元素,当然现在也有根据桌面元素的属性来定位的。

32、BDD是什么?你了解多少?TDD是什么?

参考点:BDD:行为驱动开发(Behavior Driven Development)

TDD:测试驱动开发(Test-Driven Development)

33、selenium是否可以直接读取Excel表中测试用例,来执行相关测试

参考点:可以的,需要借助第三方库

34、Selenium有哪些组件?

最早的有Selenium IDE,IDE只支持安装在fiefox上一个插件,支持录制自动化脚本。还有
remote RC,和Grid 和webdriver。我们一般最重要的就是使用webdriver。
 

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/650806.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

意向共享锁和意向排他锁

InnoDB表级锁 在绝大部分情况下都应该使用行锁,因为事务和行锁往往是选择InnoDB的理由,但个别情况下也使用表级锁: 1)事务需要更新大部分或全部数据,表又比较大,如果使用默认的行锁,不仅这个事…

【Android开发基础】蓝牙信息的获取(Bluetooth)

文章目录 一、引言二、操作1、权限2、开启蓝牙3、可检测4、搜索蓝牙5、广播 三、附件1、UI界面设计2、总代码 一、引言 描述:蓝牙技术是一种无线数据和语音通信开放的全球规范,它是基于低成本的近距离无线连接,为固定和移动设备建立通信环境…

华为OD机试真题 JavaScript 实现【知识图谱新词挖掘1】【2023Q1 100分】

一、题目描述 小华负责公司知识图谱产品,现在要通过新词挖掘完善知识图谱。 新词挖掘: 给出一个待挖掘文本内容字符串Content和一个词的字符串word,找到content中所有word的新词。 新词:使用词word的字符排列形成的字符串。 请帮小华实现新词…

cesium学习(相机)

飞到一个地方 如果你知道位置的经纬度和高度,你可以使用相机的flyTo功能直接飞到CesiumJS中的那个位置。 viewer.camera.flyTo({destination: Cesium.Cartesian3.fromDegrees(-117.16, 32.71, 15000.0), });更改相机的方向 flyTo要在完成后更改相机的方向&#x…

一、网络协议和常用的网络工具

文章目录 1.计算机概论1.1 计算机网络是什么?1.2 计算机网络的层次结构 2.TCP/IP详解2.1 TCP/IP协议族2.2 网络传输中的数据2.3 网路通信中的地址和端口号2.4 TCP三次握手建立连接2.5 TCP四次挥手建立连接 3.网络工具Wireshark和tcpdump4.一次完整的Http请求过程 1.…

Live Demo精彩大放送,演绎openGauss技术创新

技术是开源社区的根基,创新是推动技术发展的源动力。openGauss开源三周年,携手开发者、社区伙伴、用户,持续聚焦内核竞争力、用户场景架构创新、完善周边生态工具。5月26日,openGauss Developer Day 2023 主论坛现场,1…

自定义包含天时分的时长选择器组件

场景:项目是reactantd 实现的。如果传感器超过3天4小时没有上报数据,则认为设备已经坏了,需要发出告警。 3天4小时这是由用户在前端页面输入的,因此需要有一个时长选择器。antd 原生的TimePicker 组件只能实现选择 时、分、秒&…

(Qt)day4

widget.h #ifndef WIDGET_H #define WIDGET_H#include <QDebug> #include <QMainWindow> #include <QMessageBox> #include <QTimer> //定时器类头文件 #include <QTime> //时间类的头文件 #include <QTimerEvent> //定时器…

k8s的service资源类型有ClusterIP、Nodeport、ExternalName、LoadBalancer、Headless(None)

1. ClusterIP 是什么 ClusterIP 是在所有节点内生成一个虚拟IP&#xff0c;为一组pod提供统一的接入点&#xff0c;当service存在时&#xff0c;它的IP地址和端口不会发生改变&#xff0c;客户端通过service的ip和端口建立连接&#xff0c;由service将连接路由到该服务的任意一…

基于深度学习的人脸识别与检测方案

一、项目介绍前言 人脸识别作为一种生物特征识别技术&#xff0c;具有非侵扰性、非接触性、友好性和便捷性等优点。人脸识别通用的流程主要包括人脸检测、人脸裁剪、人脸校正、特征提取和人脸识别。人脸检测是从获取的图像中去除干扰&#xff0c;提取人脸信息&#xff0c;获取人…

使用ASM在Android中进行字节码注入

目录 使用方法 1.编译使用插件 这里自定义了一个插件用来对字节码进行操作 首先我们需要找到这个Gradle任务&#xff0c;双击进行编译打包 打包成功后会生成如下目录 然后我们需要在项目的gradle文件中进行引用 然后在application的model下的gradle中应用插件 2.使用ASM清…

【裸机开发】中断系统(二)—— Reset 中断服务函数(汇编实现)

目录 一、Reset 中断服务函数的实现步骤 二、汇编实现 Reset 中断服务函数 1、禁止/打开全局中断 2、设置SP指针 3、清除 .bss 段 4、完整 Reset 中断服务函数 一、Reset 中断服务函数的实现步骤 实现 Reset 中断服务函数的基本步骤如下&#xff1a; 设置各个模式下的S…

发布Android Lib 到 MavenCentral

新建 Sonatype 项目 注册账号&#xff1a; https://issues.sonatype.org/secure/Signup!default.jspa 这里注册不需要什么验证码&#xff0c;很简单。 创建问题 点击新建&#xff1a; 概要&#xff1a;自定义&#xff0c;写项目名称即可。 GroupId&#xff1a;如果是git…

C语音:打印整数二进制的奇数位和偶数位

题目&#xff1a; 获取一个整数二进制序列中所有的偶数位和奇数位&#xff0c;分别打印出二进制序列 思路&#xff1a; 总体思路&#xff1a; &#xff08;一&#xff09;. 输入数据 &#xff08;二&#xff09;. 打印奇数位&#xff1a; 使用 for循环 循环产生 1~32 之间的偶…

2023年5月 青少年软件编程(图形化) 等级考试试卷(一级)

青少年软件编程&#xff08;图形化&#xff09; 等级考试试卷&#xff08;一级&#xff09;2023.6 一、 单选题(共 25 题&#xff0c; 共 50 分) 1.看图找规律&#xff0c; 请问下图红框中是&#xff1f; &#xff08; &#xff09; A. B. C. D. 标准答案&#xff1a; D 试题解…

centos系统把.net6 web api部署到docker

为了搞定docker是怎么部署的&#xff0c;做个笔记 前提条件准备一个core项目,使用vs自带的docker打包假如你选择docker支持的时候不小心安装了Docker Desktop&#xff1b;还可以简单的先部署到本地docker中发布到centosdocker常用命令 前提条件 一台centos 8.0 版本以上的linu…

软件测试的7年,我秃了,也变强了...

当前就业环境&#xff0c;裁员、失业消息满天飞&#xff0c;好像能有一份工作就不错了&#xff0c;更别说高薪。其实这只是一方面。另一方面&#xff0c;各大企业依然求贤若渴&#xff0c;高技术人才依然紧缺&#xff0c;只要技术过硬&#xff0c;拿个年包50w不是问题。 人生格…

i.MX RT1010跨界MCU(MCUXpresso IDE上手体验)

MCUXpresso IDE是专为NXP半导体的基于ARM Cortex-M内核的MCU芯片开发而设计的&#xff0c;其优势主要体现在以下几个方面&#xff1a; MCUXpresso IDE集成了MCUXpresso SDK&#xff0c;这是NXP提供的一个软件开发套件&#xff0c;包含了底层驱动、中间件以及大量的示例代码和应…

Charles Windows10使用 证书安装 过期重设 证书加入到受信任根目录 配置访问WhatsApp

普通教程文档 抓包神器 Charles 使用教程详解 - 知乎 界面选项详细讲解 Charles的功能介绍与使用教程&#xff0c;一学就会&#xff0c;不信就来试试&#xff1f; 疑难杂症 由于CA 根证书不在“受信任的根证书颁发机构”存储区中&#xff0c;所以它不受信任 1、winr 运行…

SandQuant停止运营,免费获取A股数据

亲爱的各位朋友们&#xff1a; SandQuant即日起不再对外提供任何服务&#xff0c;为了感恩曾经支持过我们的客户朋友&#xff0c;现免费提供所有A股数据&#xff08;数据非常庞大&#xff0c;请酌情下载&#xff09;&#xff0c;请通过链接自取。 请关注我们获取链接&#xff…