学了就能通过大厂面试? 软件测试自动化的面试攻克!

前言

大家好 我是你们的笨蛋程序员灰南。一直立志成长为牛逼程序员的我,
最近就面试问题上接到了很多朋友的来信

多方取证之后,我总结出来了这篇我自认为可以帮到大家的“自动化面试108问”
希望对你们能有所帮助!

这里也是给大伙准备了一些极其给力的资料 如果有需要的伙伴可以进群领取CSDN资料
Python自动化测试学习群

在这里插入图片描述

在这里插入图片描述


一、Web自动化测试

1.Selenium中 hidden或者是display = none的元素是否可以定位到?

不能,可以写JavaScript将标签中的hidden先改为0,再定位元素

2.Selenium中如何保证操作元素的成功率?也就是说如何保证我点击的元素一定是可以点击的?

1.添加元素智能等待时间driver.implicitly_wait(30)

2.添加强制等待时间(比如python中写sleep)

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

3.如何提高Selenium脚本的执行速度?

代码优化,多任务,分布式部署都是可以提升脚本执行速度的。

4.用例在运行过程中经常会出现不稳定的情况,也就是说这次可以通过,下次就没办法通过了,如何去提升用例的稳定性?

  1. time.sleep( )

  2. driver.implicitly_wait30)

  3. 多用try捕捉,处理异常
    在这里插入图片描述

5.你的自动化用例的执行策略是什么?

自动化测试与软件开发本质上是一样的,利用自动化测试工具,经过测试需求分析,设计出自动化测试用例,从而搭建自动化测试的框架,设计与编写自动化脚本,验证测试脚本的压确性,最终完成自动化测试测试脚本(即主要功能为测试的应用软件)并输出测试结果。

6.自动化测试的时候是不是需要连接数据库做数据校验?

从数据库层面来进行数据校验可以更方便验证系统的数据处理方面是否正确,数据处理逻辑正常后,Ul层面上的校验也是需要做的。

7.id, name, class,xpath,css selector这些属性,你最偏爱哪一种,为什么?

css 、 xpath 几乎所有的元素都可以定位到,但是它们的短处在于页面上更改了元素后位置很容易改变,所以首先使用的还是id或者name 等。

8.如何去定位页面上动态加载的元素?

触发动态加载元素的事件,直至动态元素出现,进行定位

9.如何去定位属性动态变化的元素?

xpath或者css 通过同级、父级、子级进行定位

点击链接以后,Selenium是否会自动等待该页面加载完毕?
会的

10.什么是page object设计模式?

简单来说,就是把页面作为对象,在使用中传递页面对象,来使用页面对象中相应的成员或者方法,能更好的体现面向对象语言人比如java或者python)的面向对象和封装特性。

11.如何在定位元素后高亮元素(以调试为目的)

用JavaScript 等脚本来重置元素属性给定位的元素加背景、边框

12.什么是断言?

断言的英文是assertion,断言检查的英文是assertion checking。

断言是指定一个程序必须已经存在的状态的一个逻辑表达式,或者一组程序变量在程序执行期间的某个点上必须满足的条件。

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

1.不稳定
2.可靠性
3.不易维护
4.成本与收益

14.Webdriver可以用来做接口测试吗?

接口测试有现成的模块来处理,WebDriver是用于做WebUI自动化测试的。如果要实现接口测试,可以使用Requests模块来实现


在这里插入图片描述

二、APPUI自动化测试

1.Android APP内存不足时,系统如何结束进程获得内存?

系统优先结束被挂起(暂停)的进程,释放内存

2.APP测试常见的严重问题有哪些?分别引起的原因有哪些?

常见的有 crash、ANR(应用无响应、卡死),一般由设备碎片化、网络波动大、内存泄漏、代码编写错误

3.请简单介绍你曾使用过的一款APP自动化测试工具?

开放性问题,带点主观意见

1.对比其他熟悉的自动化工具的优缺点
2.自动化的简要方案(简要的同时关键内容请具体)。(提示:appnium等)

4.Android 测试与web测试有什么区别?

  • 相同点:

1.设计测试用例均依据等价类、边界值等方法,测试原理相同;
2.大多数都采用黑盒测试方法来验证业务功能;
3.需要检查界面布局、风格和按钮是否美观、统一等(UI测试);
4.测试页面载入和翻页的速度、登录时长是否溢出等问题(性能测试)
5.测试应用系统的稳定性;

  • 不同点:

1.手机作为通信工具,通信等一些行为会对APP产生(中断测试)
2.手机用户对app产品的安装卸载操作:从上一版本/上两个版本直接升级到最新版本(安装卸载测试);
3.web自动化测试使用的工具较常用的是selenium,而 android手机自动化测试比较常用的自动化工具是monkey、monkeyrunner、Appium(测试工具不一样)

5.app测试有哪几种环境?

1.本地环境: app安装的手机环境和电脑搭建的自动化测试环境(比如安卓SDK等等)

2.服务器环境: war包部署的服务器,服务器可以通过浏览器访问,也可以通过app去访问。(访问的是web程序的接口)

6.简单介绍一下Android SDK的安装步骤:

1.下载jdk和安卓sdk
2.安装jdk,配置环境变量( java_home、classpath、path)

7.请简要介绍一下移动应用及其服务端的测试点?

1.移动应用主要有权限、安装运行卸载、UI、功能、性能、中断、兼容性、安全性、回归、升级更新、用户体验。(app 的 1l 大测试点>

2.服务端有接口测试、性能测试、安全测试。

在这里插入图片描述

8.如何判断app的bug是客户端问题还是后台问题

这个要根据业务来,一般数据的问题前端的问题多些,一般做法是有问题提给前端开发,他们知道是他们自己的问题还是后台返回的数据问题。

9.安卓中如何取出日志信息?

1.把安卓系统日志信息实时导入到本地:adb logcat -v time > d : \mylog.log

2.运行使用某个app,实时获取该app 的日志信息(cmd 里面的返回信息):adb shell imonkey -pcom. android.calendar -v 1000 > d : \mylog2.log

10.常见的adb命令:

1.查看当前连接的设备:adb devices

2.安装软件:adb install路径\xx.apk

3.卸载软件:adb uninstall<包名>

4.从电脑上发送文件到设备: adb push<本地路径><远程路径>adb push C: \testl.txt /sdcard/

5.从设备上下载文件到电脑:adb pull<远程路径><本地路径>

adb pull /sdcard/testl.txt D:
6.实时获取日志:adb logcat -v time > D : \mylog.log

7.登录终端设备shell:adb shell

8.查找包名/活动名:adb logcat | findstr START(脚本中,cmp=后面的值就是包名/activity名称)

9.启动APP启动
adb shell am start -n packageName/activity

10.关闭app语法:adb shell am force-stop包名

11.监控 APP启动时间adb shell am start -w packageName/activity

  1. Monkey命令:adb shell monkey -v -p mypackage 50

11.APP这么多主流机型如何测试?

我们公司就买了,魅族,华为,小米,iphone7、iphone8 . iphone8plus . iphonex测试兼容性,有些没有的机型,先借用同事的手机进行测试,同时电请公司购买,或者采用云真机。

12.App崩溃(闪退),可能是什么原因导致的?

缓存垃圾过多:由于安卓系统的特性,如果长时间不清理垃圾文件.会导致越来越卡.也会出现闪退情况.
运行的程序过多,导致内存不足

应用版本兼容问题:如果应用版本太低,会导致不兼容,造成闪退。此外,有些新版本在调试中,也会
造成应用闪退。

解决方法:如果是版本太旧,更新为新版本即可;如果是新版本闪退,可能是应用在改版调试,可卸载后安装旧版。

检查APP中访问网络的地方,组件中的ImageView 是否可以正常的下载并显示到 app页面上。

检查APP的sdk和手机的系统是否兼容。

在一些特定情况下的闪退,比如播放视频,在Android5.0升级到Android6.0 的时候,有些系统API老版本有,新版本没有,到时回去对象的时候失败,报空,系统就会出现闪退

13.Appium都有哪些启动方式

1.客户端启动
2.命令行启动

14.请简单介绍一下使用过的安卓UI自动化测试工具?

参考答案: appium:是一个移动端的自动化框架,可用于测试原生应用,移动网页应用和混合型应用,且是跨平台的。

robotium:是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长按、滑、动等)、查找和断言机制的API,能够对各种控件进行操作。

15.请说明Android手机和IOS手机,系统有什么区别?

1.两者运行机制不同:IOS采用的是沙盒运行机制,安卓采用的是虚拟机运行机制。

2.两者后台制度不同:IOS中任何第三方程序都不能在后台运行;安卓中任何程序都能在后台运行,直到没有内存才会关闭。

  1. IOS中用于UI指令权限最高,安卓中数据处理指令权限最高。接口自动化测试

最后!

今天的文章就到这里结束啦,希望看完以后能对有一些不大不小的帮助。如果喜欢的可以点赞收藏关注,如果不行的话,那也得行(我们IT人不能说不行)球球大伙辽

如果大家感兴趣的话,可以学习交流讨论的,咱可以一起加油,可以点击这里,咱们一起进步
Python自动化测试学习群在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值