IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 8年测开经验面试28K公司后,吐血整理出高频面试题和答案 -> 正文阅读

[网络协议]8年测开经验面试28K公司后,吐血整理出高频面试题和答案

#01、web自动化中如何处理alert弹窗?

?参考点

考察web自动化测试中常见的一种处理场景

遇到alert弹窗如何去定位处理弹窗

?面试命中率

? 80%

?参考答案

selenium里提供了switch_to.alert方法来处理弹窗,处理代码如下(Python)

#切换到alert窗口?alert = driver.switch_to.alert

#点击确定?alert.accept()

#02、说一下你知道的HTTP状态码,以及他们代表什么意思?

?参考点

考察求职者对http协议是否有一定了解

考察工作中常见http状态码的含义

?面试命中率

? 90%

?参考答案

  • 200(请求成功)

  • 302(重定向)

  • 400(Bad Request/错误请求)

  • 401(Unauthorized/未授权)

  • 403(Forbidden/禁止)

  • 404(Not Found/未找到)

  • 405(Method Not Allowed/方法未允许)

  • 500(Internal Server Error/内部服务器错误)

  • 502(Bad Gateway/错误的网关)

  • 503(Service Unavailable/服务无法获得)

  • 504(Gateway Timeout/网关超时)

#03、说一下DNS解析流程?

?参考点

考察网络协议基础

考察对网络架构的认识

?面试命中率

? 85%

?参考答案

  • 浏览器先检查自身缓存中有没有被解析过的这个域名对应的ip地址,如果有,解析结束。同时域名被缓存的时间也可通过TTL属性来设置。

  • 如果浏览器缓存中没有(专业点叫还没命中),浏览器会检查操作系统缓存中有没有对应的已解析过的结果。而操作系统也有一个域名解析的过程。在windows中可通过c盘里一个叫hosts的文件来设置,如果你在这里指定了一个域名对应的ip地址,那浏览器会首先使用这个ip地址。

  • 如果至此还没有命中域名,才会真正的请求本地域名服务器(LDNS)来解析这个域名,这台服务器一般在你的城市的某个角落,一般都会缓存域名解析结果,大约80%的域名解析到这里就完成了。

  • 如果LDNS仍然没有命中,就直接跳到Root Server?域名服务器请求解析。

  • 根域名服务器返回给LDNS一个所查询域的主域名服务器(gTLD Server,国际顶尖域名服务器,如.com .cn .org等)地址

  • 此时LDNS再发送请求给上一步返回的gTLD

  • 接受请求的gTLD查找并返回这个域名对应的Name Server的地址,这个Name Server就是网站注册的域名服务器

  • Name Server根据映射关系表找到目标ip,返回给LDNS

  • LDNS缓存这个域名和对应的ip

  • LDNS把解析的结果返回给用户,用户根据TTL值缓存到本地系统缓存中,域名解析过程至此结束

#04、Tcp三次握手流程?

?参考点

考察网络协议的理论基础
考察Tcp链接的创建过程

?面试命中率

? 89%

?参考答案

  • 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认

  • 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态

  • 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

#05、如何模拟弱网测试?

?参考点

考察弱网测试概念

考察模拟弱网的思路

?面试命中率

? 90%

?参考答案

很多抓包工具都可以做到模拟网络情况,比如fiddler、charles。如果是网站还可以采用chrome开发者工具模拟弱网,如果是手机app则可以在手机自身的网络设置里设置为2G/3G/4G/飞行模式。

#06、自动化测试框架都包括哪些模块?

?参考点

对自动化测试框架的认知

?面试命中率

? 90%

?参考答案

自动化测试框架模块包括:

基础方法、数据驱动、PO模式分层、自定义异常、工具包、配置文件、测试报告、日志收集、关键字驱动、接口分层、接口数据管理等模块

以上模块均需要集成相关的工具进行二次封装

#07、如何准备性能测试数据

?参考点

考察性能测试数据的准备方法
考察技术全面性

?面试命中率

? 95%

?参考答案

  • 调用业务接口构造数据,一般适用于数据逻辑比较复杂的情况下。

  • 直接写jdbc代码造数据,一般适用于数据量较大且数据逻辑较简单的情况。

  • 存储过程造数据,一般适用于数据量巨大且数据逻辑较简单的情况。

  • 导入sql,一般适用于数据安全级别较低且数据量巨大的情况。

#08、GET和POST的区别?

?参考点

http协议的请求方法

?面试命中率

?95%

?参考答案

最常见的http/https协议的请求方式是GET和POST,他们之间的区别如下:

  • 请求参数的位置

    get在url里面传输,post在请求体里传输

  • 安全性

    正因为传输参数位置的区别,所以get的安全性不如post

  • 传输数据的大小

    正因为传输参数位置的区别,get的参数长度受限于浏览器,post的长度不受限制

  • 表现形式

    请求行的表现形式不一样,因为请求行里面包括请求方法,所以当然不一样了

#09、http和https的区别?

?参考点

http协议和https协议

?面试命中率

? 90%

?参考答案

HTTP:超文本传输协议,是一个客户端和服务器端的请求和应答的标准。

HTTPS:是以安全为目标的HTTP通道,HTTP的安全版本,HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL

他们的区别如下:

  • HTTP 信息是明文传输的,而 HTTPS 是安全的?具有安全性的ssl加密传输

  • HTTP 标准端口是?80?,而 HTTPS 的标准端口是?443

  • HTTP 无需证书,而 HTTPS 需要认证证书,需要到CA申请证书,一般免费证书较少,因而需要一定费用。

#10、cookie和session的区别?

?参考点

会话跟踪技术

?面试命中率

? 90%

?参考答案

会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话

  • Cookie通过在客户端记录信息确定用户身份

  • Session通过在服务器端记录信息确定用户身份

区别:

  • 数据存放位置不同:

    cookie数据存放在客户的浏览器上,session数据放在服务器上。

  • 安全程度不同:

    cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session。

  • 性能使用程度不同:

    session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。

  • 数据存储大小不同:

    单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie,而session则存储与服务端,浏览器对其没有限制。

#11、web ui自动化测试中显式等待,隐式等待的区别?

?参考点

web自动化测试的等待

?面试命中率

? 80%

?参考答案

  • 相同点都是智能等待,在一定时间范围内不断查找元素,一旦找到立刻结束查找继续执行代码,没找到才会一直找到超时为止

  • 不同点是隐式等待是全局性设置,并且可以随时更改,在更改后对之后的findxxx方法生效,对点击、输入之类的操作不起作用;显式等待仅仅针对单一元素或一组生效,并且不仅仅是针对查找,也可以针对Alert、iframe,或者元素的某些属性进行自定义判断

#12、验证码的几种处理方式?

?参考点

验证码处理

?面试命中率

? 85%

?参考答案

针对验证码有如下方法:

  • 在产品没有上线前,需要找开发先给web验证码留后门,也就是将验证码验证先注释掉

  • 让开发给web验证码留一个万用验证码,只要输入给定的验证码,就可以强制登录

  • 当有的页面可以勾选保存用户名,密码可以通过Cookie跳过登录验证码,使用抓包工具就行了

  • 使用验证码识别技术

#13、进程和线程的区别?

?参考点

进程和线程的概念

?面试命中率

?90%

?参考答案

进程是资源分配最小单位,线程是程序执行的最小单位;

进程有自己独立的地址空间,每启动一个进程,系统都会为其分配地址空间,建立数据表来维护代码段、堆栈段和数据段,线程没有独立的地址空间,它使用相同的地址空间共享数据;

CPU切换一个线程比切换进程花费小;创建一个线程比进程开销小;线程占用的资源要?进程少很多。

线程之间通信更方便,同一个进程下,线程共享全局变量,静态变量等数据,进程之间的通信需要以通信的方式(IPC)进行;(但多线程程序处理好同步与互斥是个难点)

多进程程序更安全,生命力更强,一个进程死掉不会对另一个进程造成影响(源于有独立的地址空间),多线程程序更不易维护,一个线程死掉,整个进程就死掉了(因为共享地址空间);

进程对资源保护要求高,开销大,效率相对较低,线程资源保护要求不高,但开销小,效率高,可频繁切换

#14、在你做自动化测试的过程中,遇到什么问题了吗?

?参考点

自动化测试实际经验和问题处理能力

?面试命中率

? 95%

?参考答案

这个问题,不管是自动化还是任何工作,都会被问到。主要想知道你是如何解决问题的,从而推断你问题分析和解决的能力。

当然有遇到问题和挑战,主要有以下几点:

  • 频繁地变更UI,经常要修改页面对象里面代码

  • 运行用例报错和处理,例如元素不可见,元素找不到这样异常

  • 测试脚本复用,尽可能多代码复用

  • 一些新框架产生的页面元素定位问题,例如ck编辑器,动态表格等

#15、在selenium中如何处理多窗口?

?参考点

多窗口处理

?面试命中率

? 85%

?参考答案

这个多窗口之间跳转处理,在实际selenium自动化测试经常遇到。点击一个链接,这个链接会在一个新的tab打开,然后接下来要查找元素在新tab打开的页面,需要先将driver切换至window,然后再定位,步骤如下:

  • 先获取当前的windowhandle

  • 操作打开新界面后,获取所有的windowhandles

  • 遍历windowhandles,判断和当前的windowhandle不一样则切换至该windowhandle

  • window太多则可以按照title、url等其他信息进行判断切换

#16、性能测试的流程是什么?

?参考点

对性能测试理论的掌握程度

是否拥有实际性能测试的经验

?面试命中率

? 90%

?参考答案

需求调研 - 环境搭建 - 脚本编写 - 准备数据 - 执行测试 - 回归调优 - 测试报告

#17、什么是长连接,什么是短连接?

?参考点

考察计算机基础

考察对系统间通信机制的了解

?面试命中率

? 85%

?参考答案

长连接和短连接是客户端和服务端之间的通信机制。

  • 长连接:

    客户端和服务端建立连接后,后续无论进行多少次通信,所有的请求和响应数据都是在这个链接上进行,这就是长连接。

  • 短连接:

    客户端每一次和服务端进行通信时,都重新创建一个链接,通信完成后关闭连接。

#18、说说你对集合点的理解以及在项目中的应用?

?参考点

对集合点概念的理解

工作过程中哪些项目使用过集合点,使用过程的描述性话语

?面试命中率

? 80%

?参考答案

1.?集合点是测试脚本中的一个标记,当每个虚拟用户执行到标记处时,会停留在标记处等待其他的虚拟用户,当达到预期设置的并发数时,标记处的所有用户同时启动执行后续的请求

2.?集合点会产生瞬间高并发,但是也会降低平均压力。所以在压测过程中,如果有要求瞬间高并发的业务,就需要使用集合点,比如抢购,秒杀之类的业务。

3.?没有类似业务则不需要加集合点

4.?lr_rendezvous(“集合点名称”),同步定时器

#19、性能测试中的思考时间应该怎么用

?参考点

性能测试中思考时间的概念

性能测试中哪些场景下使用思路时间

?面试命中率

? 80%

?参考答案

对于交互系统来说,用户在向服务器发送一个请求后,会等待一段时间后再发送下一个请求。

在性能测试过程中,使用思考时间来描述这段时间。

一般思考时间是在一定时间范围内随机变化的,例如1至3秒之间随机变化。

在LoadRunner中主要通过lr_think_time函数+RTS模拟随机思考时间,在jmeter中通过高斯随机定时器来模拟随机思考时间。

思考时间的应用场景一般是构造测试数据接口、混合压测场景、稳定性压测场景

#20、出现内存泄露的根本原因是什么?你是怎么定位内存泄露原因的?

?参考点

内存泄漏成因分析

定位内存泄漏常用方法

结合实际工作过程进行描述性说明

?面试命中率

? 85%

?参考答案

  • ?内存泄露的根本原因是Jvm中老年代中存在着大量存活的对象,这些对象不能被GC回收掉,从而占满了整个老年代,造成Jvm一直处于FGC的状态,程序没有响应,服务器报OOM错误

  • 内存泄露主要通过分析老年代中占用空间最大的类都有哪些,然后去代码中找对应的类的创建。通常可以使用jdk提供的jvisualvm和jmap进行堆内存的分析

#21、工作中常用的jmeter自带函数有哪些?

?参考点

jmeter函数列举

抽取实际工作过程中常用的jmeter函数使用场景进行描述

?面试命中率

? 85%

?参考答案

  • digest特定哈希算法的加密函数

  • urlencodeurldecode分别是URL编码、解码函数

  • time获取当前各种格式时间的函数

  • Random获取指定范围数值的随机数函数

  • StringToFile指定字符串写入文件的函数

  • UUID函数返回一个伪随机类型4通用唯一标识符


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

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….【下方】

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-05-26 15:24:43  更:2022-05-26 15:25:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:46:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码