面试是到难过的坎,怎么跨过这道坎也是个大问题,但如果角色转换你能变成面试官,那么你会问什么样的问题呢,所以能够转换思维方式去预测面试官将要询问的问题,并结合自己的经验得出具体的回答,不就容易了很多吗。下面就给大家讲些有点东西的内容,虽然本人是个菜鸡测试,也不想看到大家去外包打工。

为了方便大家更好的应对面试,本人整理了一些关于面试的资料,还有一些关于自动化测试学习的资料,由于篇幅受限就不全部展开了,需要的记得点开这里报个敲门号:CSDN

一、Web 自动化测试

1.Selenium 中 hidden 或者是 display = none 的元素是否可以定位到? 不能,可以写 JavaScript 将标签中的 hidden 先改为 0,再定位元素
2.Selenium 中如何保证操作元素的成功率?也就是说如何保证我点击的元素一定是可以点击的?

1.添加元素智能等待时间 driver.implicitly_wait(30)
2.添加强制等待时间(比如 python 中写 sleep)
3.try 方式进行 id,name,clas,x path, css selector 不同方式进行定位,如果第一种失败可以自动尝试第二种

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

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

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

1.time.sleep( )
2.driver.implicitly_wait(30)
3.多用 try 捕捉,处理异常

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

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

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

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

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 的 11 大测试点)
2.服务端有接口测试、性能测试、安全测试。

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

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

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

1.把安卓系统日志信息实时导入到本地: adb logcat -v time > d:\mylog.log
2.运行使用某个 app,实时获取该 app 的日志信息(cmd 里面的返回信息) : adb shell monkey -p com.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:\test1.txt /sdcard/
5.从设备上下载文件到电脑: adb pull <远程路径> <本地路径> adb pull /sdcard/test1.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
12.Monkey 命令:
adb shell monkey -v -p mypackage 50

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

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

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 中任何第三方程序都不能在后台运行;安卓中任何程序都能在后台运行,直到没有内存才会关闭。
3.IOS 中用于 UI 指令权限最高,安卓中数据处理指令权限最高。接口自动化测试

16.按你的理解,软件接口是什么?
答:就是指程序中具体负责在不同模块之间传输或接受数据的并做处理的类或者函数。

17.HTTP 和 HTTPS 协议区别?
答:https 协议需要到 CA(Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用;
http 是超文本传输协议,信息是明文传输,Https 协议是由 SSL+Http 协议构建的可进行加密传输、身份认证的网络协议,比 http 协议安全;
http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443;

18.HTTPS 在哪一层?
以前我面试很喜欢提网络协议的问题,有朋友说我装 X,不实用。稍有点研究网络知识,实际就不难回答
答:HTTPS 在应用层。

19.get 和 post 区别是什么?
答:POST 和 GET 都是向服务器提交数据,并且都会从服务器获取数据。区别:
1)传送方式:get 通过地址栏传输,post 通过报文传输
2)传送长度:get 参数有长度限制(受限于 url 长度),而 post 无限制
3)GET 产生一个 TCP 数据包(对于 GET 方式的请求,浏览器会把 http header 和 data 一并发送出去,服务器响应 200 返回数据),POST 产生两个 TCP 数据包(对于 POST,浏览器先发送 header,服务器响应 100 continue,浏览器再发送 data,服务器响应 200 ok 返回数据)
4)get 请求参数会被完整保留在浏览历史记录里,而 post 中的参数不会被保留
5)在做数据查询时,建议用 GET 方式;而在做数据添加、修改或删除时,建议用 post 方式

20.常见的 POST 提交数据方式
答:主要有四种方式:application/x-www-form-urlencoded、multipart/form-data、application/json、text/xml 等。

21.什么是 Http 协议无状态协议?怎么解决 HTTP 协议无状态协议答:
无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。即我们给服 务器发送 HTTP 请求之后,服务器根据请求,会给我们发送数据过来,但是,发送完,不会记录任何信息。HTTP 是一个无状态协议,这意味着每个请求都是独立的,Keep-Alive 没能 改变这个结果。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导 致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。HTTP 协议这种特性有优点也有缺点,优点在于解放了服务器,每一次请求“点到为止”不会造成 不必要连接占用,缺点在于每次请求会传输大量重复的内容信息。客户端与服务器进行动态 交互的 Web 应用程序出现之后,HTTP 无状态的特性严重阻碍了这些应用程序的实现,毕竟交互是需要承前启后的,简单的购物车程序也要知道用户到底在之前选择了什么商品。于是, 两种用于保持 HTTP 连接状态的技术就应运而生了,一个是 Cookie,而另一个则是 Session。

22.cookie 和 session 的区别答:
cookie 数据存放在客户的浏览器上,session 数据放在服务器上
cookie 不是很安全,别人可以分析存放在本地的 cookie 并进行 cookie 欺骗,考虑到安全应当使用 session
session 会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面应当使用 cookie
单个 cookie 保存的数据不能超过 4K,很多浏览器都限制一个站点最多保存 20 个 cookie 可以将登陆信息等重要信息存放为 session;其他信息需要保存,可以放在 cookie

23.请求接口中常见的返回状态码答:

1xx – 信息提示(表示临时的响应。客户端在收到常规响应之前,准备接收一个或多个 1xx 响应)
2xx – 成功(表明服务器成功地接受了客户端请求)
3xx – 重定向(客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求)
4xx – 客户端错误(发送错误,客户端有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份证验证信息)
5xx – 服务器错误(服务器由于遇到错误而不能完成该请求)

常见的返回码有:

  • 200 OK - [GET]:服务器成功返回用户请求的数据

  • 201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功

  • 202 Aceepted - [*]:表示一个请求已经进入后台排队(异步任务)

  • 204 NO CONTENT - [DELETE]:用户删除数据成功

  • 400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行
    新建或修改数据的操作

  • 401 Unauthorized -[*] :表示用户没有权限(令牌、用户名、密码错误)

  • 403 Forbidden -[*] :表示用户得到授权(与 401 错误相对),但是访问被禁止

  • 404 NOT FOUND -[*]:用户发出的请求针对得到是不存在的记录,服务器没有进行操作, 该操作是幂等的

  • 406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求 JSON 格式,但是只有 XML 格式)

  • 500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功

24.什么是 DNS?
答:DNS 是域名系统 (Domain Name System),DNS 是用来做域名解析的,它会在你上网输入网址后,把它转换成 IP,然后去访问对方服务器;没有它,你想上百度就要记住百度的 IP, 但有了 DNS 的处理,你只需要记住对应网站的域名,即网址就可以了。

25.请问你们公司是如何做接口测试的? 答:
接口测试实际跟一般测试不同就是测试用例的设计部分。
①获取接口规范。
②设计接口测试功能用例(主要从用户角度出发看接口能否实现业务需求,用例设计就是黑 盒用例那一套)。
③各种入参验证(正常情况,异常情况包括输入参数个数不对,类型不对,可选/必选,还 有考虑参数有互斥或关联的情况)。
④接口返回值各种验证(符合接口文档需求)
⑤了解接口实现逻辑,实现逻辑覆盖(语句/条件/分支/判定/…)
⑥接口能并发执行吗、安全吗,性能满足要求吗?
⑦采用工具或者自写代码来验证。
⑧发现问题跟功能测试一样,该报 bug 报 bug,该跟踪状态的跟踪状态。

26.怎么设计接口测试用例? 答:
通常,设计接口测试用例需要考虑以下几个方面:
①是否满足前提条件
有些接口需要满足前提,才可成功获取数据。常见的,需要登录 Token 逆向用例:针对是否满足前置条件(假设为 n 个条件),设计 0~n 条用例
②是否携带默认值参数
正向用例:带默认值的参数都不填写、不传参,必填参数都填写正确且存在的“常规”值, 其他不填写,设计 1 条用例
③业务规则、功能需求
这里根据时间情况,结合接口参数说明,可能需要设计 N 条正向用例和逆向用例
④参数是否必填
逆向用例:针对每个必填参数,都设计 1 条参数值为空的逆向用例
⑤参数之间是否存在关联
有些参数彼此之间存在相互制约的关系
⑥参数数据类型限制
逆向用例:针对每个参数都设计 1 条参数值类型不符的逆向用例
⑦参数数据类型自身的数据范围值限制
正向用例:针对所有参数,设计 1 条每个参数的参数值在数据范围内为最大值的正向用例

27.你做接口测试,测什么?
答:
可用性测试
根据约定的协议、方法、格式内容,传输数据到接口经处理后返回期望的结果:

接口功能是否正确实现;
返回值测试 - 返回值除了内容要正确,类型也要正确,保证调用方能够正确地解析;
参数值边界值、等价类测试; 错误和异常处理测试

输入异常值(空值、特殊字符、超过约定长度等),接口能正确处理,且按预期响应;
输入错误的参数,接口能正确处理,并按预期响应;
多输入、少输入参数,接口能正确处理,且按预期响应;
错误传输数据格式(如 json 格式写成 form 格式)测试; 安全性测试,主要指传输数据的安全性:

敏感数据(如密码、秘钥)等是否加密传输;
返回数据是否含有敏感数据,如用户密码、完整的用户银行账号信息等;
接口是否对传入的数据做安全校验,如身份 ID 加 token 类似校验;
接口是否防止恶意请求(如大量伪造请求接口致使服务器崩溃);性能测试,如接口的响应时间、并发处理能力、压测处理情况:

并发请求相同的接口(特别为 POST 请求),接口的处理情况(如插入了相同的记录导致数据出错,引发系统故障);

接口响应时长在用户可忍受的范围内;
对于请求量大的接口做压测,确定最大的瓶颈点是否满足当前业务需要;

28.平常用什么工具测接口的?
答:常用 http 协议接口测试工具,如:postman、fiddler、jmeter;webService 接口用 SoapUI、 jmeter 等。

29.没有接口文档,如果做接口测试?
本题主要考情商,通俗来说就是忽悠能力,先唬住面试官了再说,进去了也是瞎测测,随时 做好背锅的准备,当然,你肯定不能回答面试官不测(心理 mmp,脸上笑嘻嘻),接下来就是扯犊子时间
答:用抓包工具把接口抓取处理,然后针对性进行测试;接口中字段信息不清楚的,找时间 集中寻求开发解答。(常用抓包工具 Fiddler、Charles 等)

30.在手工接口测试或者自动化接口测试的过程中,上下游接口有数据依赖如何处理?
答:用一个全局变量来处理依赖的数据,比如登录后返回 token,其它接口都需要这个 token,那就用全局变量来传 token 参数。

总结

看了这30道题,在不看答案的情况下你能答上来多少道呢,需要的更多的面试题欢迎戳这里敲门号:CSDN

都看到这里了,点个赞也行,点点关注那就再好不过了~

朋友突然月入12k,原来是偷偷看了这个!相关推荐

  1. 26岁啃老男子转行学Python,月入12K,网友:宅男逆袭就是燃

    根据最新数据统计显示:在各行各业中,IT互联网行业是最赚钱的行业.很多人通过学习编程技术成功转行程序员,大大改变了自己的生活.26岁的小余就是其中一员,几年前小余一直在家里啃老,还自称是令和死宅.后来 ...

  2. 朋友做跨境电商月入八万+?生活永远充满惊喜!

    一个人没钱可以嘛? 钱不是万能的,但是没钱是万万不行的! 没有人不想多赚钱,但是赚钱的难度也很高. 也许会有人说互联网如此发达,赚钱的门路那么多,总会有合适的.我也无数次摸索门路到放弃到改道而行. 做 ...

  3. 川希:通过朋友圈引流月入10万的运营方法,建议收藏!

    川希:通过朋友圈引流月入10万的运营方法,建议收藏! 首先这不是标题党,我说10万其实已经很保守,有人已经做到20万+30万+,这是一位年销售过亿的微商品牌方老板内部运营的方法,现在我拿来拆解给你们. ...

  4. 普通人如何在网上能月入3000以上

    一.网上兼职文案 一般情况下,1000字左右的10元/篇,300字左右的4元/篇.那想要靠写作月入3000元,就是需要一个月写30万字.亲自实践,可以实现,就是有点累. 二.线上客户或社群运营 有些公 ...

  5. 非斜杠青年,月入十万,有多难

    -1- 什么是斜杠青年?简单来说,斜杠青年,指的是"多重职业者".比如李笑来老师:比特币首富 / 畅销书作家 / 社群大神 / 前新东方名师;比如古典老师:生涯规划师 / 新精英生 ...

  6. 从外卖小哥到月入两万的城市经理,他在无锡见证外卖大战

    下午两点,点我达无锡市城市经理赵军辉再次拿起发烫的手机,给电话那头的员工仔细交待工作要点."618电商大促"一触即发,点我达将负责配送部分天猫超市的货品."我要跟他们敲定 ...

  7. 靠2块钱月入4万:越朴素的方法,往往越挣钱

    ↑↑↑点上方蓝色小字,关注「临公子的后花园」 记得把临公子置顶或星标哦 01 这两年写公众号,我时常会收到一类留言,大致是: "如何尽快实现财务自由?" "怎样才能提高情 ...

  8. 【子桓说】某大学毕业生:我很嫉妒月入10万的网红

    你好,我是那个试图让你少走弯路的五脚兽.在知乎上看到了这样一个提问:为啥学历不高的网红月入10万+,而苦逼的白领月薪只有几千?我只想说,赚钱的事情,远没有想像的那么简单,它也有它的逻辑,我们今天就谈谈 ...

  9. 软件测试【月入1万如讨饭】需要多少才能算高薪呢?

      小编热衷于收集整理资源,记录踩坑到爬坑的过程.希望能把自己所学,实际工作中使用的技术.学习方法.心得及踩过的一些坑,记录下来.也希望想做软件测试的你一样,通过我的分享可以少走一些弯路,可以形成一套 ...

最新文章

  1. 面试官:说说Kafka处理请求的全流程
  2. Effective Java之避免使用受检的异常(五十九)
  3. Mod, Or and Everything HDU - 6950
  4. mysql item_MySQL源代码:关于MySQL的Item对象
  5. 随机/线性颜色生成器(RandomColorGenerator)
  6. 最近在群里┏━━━━━━━━━飞鸽传书━━━━━━━━━━┓
  7. 微软IT规划方法论解读
  8. elasticsearch获取一个字段的值_Elasticsearch,你觉得自己懂了多少,看看这篇文章吧...
  9. 漯河首富,一年杀猪5000万头
  10. Codeforces 71A Way Too Long Words
  11. step1: python scrapy安装
  12. 梯度边缘检测 matlab,梯度边缘检测matlab
  13. TOGAF9企业架构规划与设计学习考试经验简记
  14. 极域电子教室加密狗怎么激活
  15. 无线信号不好,如何进行扩展?(中继、桥接、WDS、PLC)
  16. Blender 建模
  17. 拷贝temp文件下的麦客疯临时文件到当前目录 .
  18. 人工智能和计算机程序有什么区别,人工智能和机器学习之间有什么区别?
  19. js数组操作大全(pop,push,unshift,splice,shift方法)
  20. u盘误删文件怎么恢复

热门文章

  1. Django的ManyToManyField及其属性through
  2. C++之设置背景图片(Easyx)
  3. html空间 绑定域名,墨涩网 - Coding搭建html静态网站后绑定域名+SSL证书——墨涩网...
  4. 公司企业网站怎么做?
  5. 全面揭秘快手与抖音的内容推荐算法
  6. Nuvoton M0518 之 延时程序(延时1毫秒)
  7. python数据分析——pyecharts折线图全解
  8. GSV反恐验厂安全标准
  9. 三菱fx3U插补画圆,仅提供plc程序。 程序已详细注释
  10. tomcat面试和Spring的面试题