测试开始面试题答案(1)
的区别Hi 各位老铁:
昨天发完了题,好多老铁都说没有答案,小老弟特意准备下对应答案哈.
1、Http与Https的区别
a.https协议需要到CA (Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用。(原来网易官网是http,而网易邮箱是https。)
b.http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
c.http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
d.http的连接很简单,是无状态的。Https协议是由SSL+Http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。(无状态的意思是其数据包的发送、传输和接收都是相互独立的。无连接的意思是指通信双方都不长久的维持对方的任何信息。)
2.在浏览器中发送一个http请求的过程发生了什么?
a.当用户在浏览器的地址栏中输入一个URL并按回车键之后,浏览器会向HTTP服务器发送HTTP请求。HTTP请求主要分为“Get”和“Post”两种方法。
b.当我们在浏览器输入URL http://www.baidu.com 的时候,浏览器发送一个Request请求去获取 http://www.baidu.com 的html文件,服务器把Response文件对象发送回给浏览器。
c.浏览器分析Response中的 HTML,发现其中引用了很多其他文件,比如Images文件,CSS文件,JS文件。 浏览器会自动再次发送Request去获取图片,CSS文件,或者JS文件。
d.当所有的文件都下载成功后,网页会根据HTML语法结构,完整的显示出来了。
3、常见响应状态码
200:请求正常,服务器正常的返回数据。
301:永久重定向。比如在访问www.jingdong.com的时候会重定向到www.jd.com。
302:临时重定向。比如在访问一个需要登录的页面的时候,而此时没有登录,那么就会重定向到登录页面。
400:请求的url在服务器上找不到。换句话说就是请求url错误。
403:服务器拒绝访问,权限不够。
500:服务器内部错误。可能是服务器出现bug了。
4、同步和异步的区别什么?
同步:
同步的思想是:所有的操作都做完,才返回给用户。这样用户在线等待的时间太长,给用户一种卡死了的感觉(就是系统迁移中,点击了迁移,界面就不动了,但是程序还在执行,卡死了的感觉)。这种情况下,用户不能关闭界面,如果关闭了,即迁移程序就中断了。
异步:
将用户请求放入消息队列,并反馈给用户,系统迁移程序已经启动,你可以关闭浏览器了。然后程序再慢慢地去写入数据库去。这就是异步。但是用户没有卡死的感觉,会告诉你,你的请求系统已经响应了。你可以关闭界面了。
5、永久重定向和临时重定向的使用场景?对应的状态码是什么?
比如京东:
你输入www.jingdong.com 就会重定向到www.jd.com。这个就是永久重定向,状态码是:301
你要去订单页面,但未登录,这时候点击就会先去登陆页面,这个是临时重定向,状态码是302
6、自动化的显式等待和隐式等待有和区别
显示等待:是针对于某个特定的元素设置的等待时间,如果在规定的时间范围内,没有找到元素,则会抛出异常,如果在规定的时间内找到了元素,则直接执行,即找到元素就执行相关操作。
隐式等待:是设置的全局等待,分为1、页面加载超时等待 ;2、页面元素加载超时;3、异步脚本超时
7、[1,3,5,7,5,7,6,8,9],统计出相同值出现的次数
dict1={}
for key in list1:
dict1[key]=dict1.get(key,0)+1
print(dict1)
output:
{'a': 3, 1: 5, 2: 2, 3: 2, 'c': 1, 4: 1, 6: 1}
8、一个登陆界面,你能列出几个维度,对应的测试点是什么?怎么判断你的覆盖度
维度:
a:UI层
b:接口层
c:安全层
d:性能层
e:易用性层
然后根据对应的层去拆分
9、App如何区分H5和android原生页面
a、看断网的情况
把手机的网络断掉。然后点开页面。然后可以正常显示的东西就是原生写的。
显示404或则错误页面的是html页面。b、看布局边界
开发者选项->显示布局边界,页面元素很多的情况下布局是一整块的是h5的,布局>密密麻麻的是原生控件。页面有布局的是原生的,否则为h5页面。(仅针对安卓>手机试用)如下图所示:
c、看复制文章的提示,需要你通过对比才能得出结果。
比如是文章资讯页面可以长按页面试试,如果出现文字选择、粘贴功能的是H5页>>面,否则是native原生的页面。
有些原生APP开放了复制粘贴功能或者关闭了。而H5的css屏蔽了复制选择功能等>等情况。需要通过对目标测试APP进行对比才可知。
这个在支付宝APP、蚂蚁聚宝都是可以判断的。d、看加载的方式
如果在打开新页面导航栏下面有一条加载的线的话,这个页面就是H5页面,如果>>没有就是原生的。微信里面打开我们的H5页面常见的有个绿色的 加载线条。如>下图红框里面所示:
e、看app顶部 导航栏是否会有关闭的操作
如果APP顶部导航栏当中出现了关闭按钮或者有关闭的图标,那么当前的页面肯定>的H5,原生的不会出现(除非设计开发者故意弄的)
美团的、大众点评的APp、微信APP当加载h5过多的时候,左上角会出现关闭2字。f、判断页面 下拉刷新的时候(前提是要有下拉刷新的功能)
如果界面没有明显刷新现象的是原生的,如果有明显刷新现象(比如闪一下)的是>H5页面(ios和android)。
比如淘宝的众筹页面。g、下拉页面的时候显示网址提供方的一定是H5
10、token、session,cookie的区别的?
a.Cookie和Session都是会话技术,Cookie是运行在客户端,Session是运行在服务器端。
b.Cookie有大小限制以及浏览器在存cookie的个数也有限制,Session是没有大小限制和服务器的内存大小有关。
c.Cookie有安全隐患,通过拦截或本地文件找得到你的cookie后可以进行攻击。
d.Session是保存在服务器端上会存在一段时间才会消失,如果session过多会增加服务器的压力。
.token和session都是为了身份验证,session被翻译为会话,token被翻译为令牌。
e.身份认证 token安全性比session好,因为每个请求都有签名还能防止监听以及重放攻击,而session就必须靠链路层来保障通讯安全。
f.session和token都需要去管理过期时间。
g.时间与空间的博弈:session是空间换时间,而token是时间换空间。