面试题小整理
问题1:什么是幂等性?
幂等性其实就是保证这个接口的执行结果只影响一次,后续即便再次调用,也不能对数据产生影响。 幂等测试就是验证数据一致性和事务完整性。 可能出现幂等性的场景: 1、用户重复提交--非常容易发生,前端、后端均需要控制 2、网络重发 3、消息重发 4、系统间重试 测试幂等的手段: 前端幂等测试,按钮的多次快速点击 后端接口的幂等性测试,使用postman或者jmeter多次发送同一参数的请求,查看服务响应
问题2:Nginx常用负载均衡配置有哪些?
1、轮询模式,默认 2、weight权重模式,权重越大被访问概率越大,weight=70; 3、ip_hash,在upstream中采用ip_hash指令,当用户访问时,会通过哈希算法自动定位到某个服务器
问题3:网络七层模型都是哪七层?http协议和tcp协议在哪一层?
网络OSI七层模型:
物理层
数据链路层
网络层
传输层
会话层
表示层
应用层
http协议处于应用层,tcp协议处于传输层
问题4:http和https的区别
http :超文本传输协议,是一个客户端和服务端请求和应答的标准 https:是以安全为目标的http通道,http下加入ssl层,是http的安全版本。 它们的区别如下: 1、http信息是明文传输的,而https是安全的,具有安全性的ssl加密传输 2、http标准端口是80,https标准端口是443 3、http无需证书,而https需要认证证书,需要用到CA证书,一般免费证书比较少,因为需要一定费用
问题5:TCP三次握手
TCP三次握手是浏览器和服务器建立连接的方式,目的是为了使二者能够建立连接,便于后续的数据交互传输。
第一次握手:浏览器向服务器发起建立连接的请求(客户端发送带有SYN标识的连接请求数据包给服务器)
第二次握手:服务器告诉浏览器,我同意你的连接请求,同时我也向你发起建立连接的请求。(服务端发送带有SYN+ACK标志的连接请求和应答数据包给客户端)
第三次握手:浏览器也告诉服务器,我同意建立连接。(客户端发送带有ACK标志的应答数据包给服务端)
至此,双方都知道对方同意建立连接,并准备好了进行数据传输,也知道对方知道自己的情况。接下来就可以传输数据了
问题6:DNS解析流程
1、先检查浏览器缓存,如果已经缓存了这个域名对应的ip地址,解析结束。 2、如果浏览器缓存没有命中,检查操作系统缓存,也可以通过hosts文件来指定一个域名对应的ip地址 3、如果上面2个都没有的话,检查本地域名服务器 4、请求根域名服务器
问题7:给你一个网站,如何开展测试
1、查找需求说明、网站设计等相关文档,分析需求 2、制定计划,确定测试范围和测试策略 3、设计测试用例,包括功能、兼容、性能、安全等方面 4、开展测试执行 5、回归测试及测试总结
问题8:做好测试用例的关键是什么?
关键就是熟悉需求,但是需求可以分为下面几个方面:
1、熟悉本次业务需求
2、熟悉其他系统和本次需求的关联
3、熟悉开发设计文档,了解开发实现逻辑
4、熟悉数据库设计文档,了解数据存储
5、熟悉项目架构,发现隐藏需求
问题9:持续集成的目的是什么?
持续集成指的是,频繁地将代码集成到主干。
它主要有两个好处:
1、快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。
2、防止分支大幅度偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。
持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试,只要有一个测试用例失败,就不能执行。