七牛云测试开发实习面试问题记录
七牛云测试开发实习面试问题记录
声明:本人懂的比较少。
1 简历中写你用过Jmeter,用Jmeter来做什么?
用Jmeter做过接口测试,(面试官最后说Jmeter一般是用来压力测试)。
2 为什么用Jmeter不用postman?
初期测试单个接口用postman较方便,后期压力测试,性能测试用Jmeter更好。
压力测试:对系统不断施加压力的测试,是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。例如测试一个Web站点在大量的负荷下,何时系统的响应会退化或失败。
性能测试:在交替进行负荷和强迫测试时常用的术语。性能测试关注的是系统的整体。它和通常所说的强度、压力/负载测试测试有密切关系。所以压力和强度测试应该于性能测试一同进行。
3 有没有用Jenkins写过code?会配置吗?怎么实现自动化测试?
有配置过,没有写过代码。
需要编写一个shell脚本来执行这个过程。
具体的创建Jenkins任务的过程为
1.创建jenkins任务
2.填写Server信息
3.配置git参数
4.填写构建语句(shell脚本),实现自动部署。
4 linux的基本命令熟吗?
5 有没有比较熟练的编程语言?
6 sql中四个……(没听清)
(1)sql四个事务隔离级别
1)未提交读(Read Uncommitted):一个事务能够读取到别的事务中没有提交的更新数据。事务可以读取到未提交的数据,这也被称为脏读(dirty read)。
所以这种级别很有可能读到脏数据,隔离级别最低。
2)提交读(Read Committed):一个事务只能读取到别的事务提交的更新数据。
一般我们提交读就可以了。只能读取到已经提交的数据。即解决了脏读,但未解决不可重复读。(oracle默认的)
3)可重复读(Repeated Read):保证同一事务中先后执行的多次查询将返回同意结果,不受其他事务的影响。这种隔离级别可能出现幻读。(mysql默认的)
4)序列化(Serializable):不允许事务并发执行,强制事务串行执行,就是在读取的每一行数据上都加上了锁,读写相互都会阻塞。这种隔离级别最高,是最安全的,性能最低,不会出现脏读,不可重复读,幻读,丢失更新。
(2)sql四个排名函数
四个排名函数的区别:
RANK()
返回结果集的分区内每行的排名。行的排名是相关行之前的排名数加一。
如果两个或多个行与一个排名关联,则每个关联行将得到相同的排名。
DENSE_RANK()
返回结果集分区中行的排名,在排名中没有任何间断。行的排名等于所讨论行之前的所有排名数加一。
如果有两个或多个行受同一个分区中排名的约束,则每个约束行将接收相同的排名。
ROW_NUMBER()
返回结果集分区内行的***,每个分区的第一行从开始。
ORDER BY子句可确定在特定分区中为行分配唯一ROW_NUMBER的顺序。
NTILE()
将有序分区中的行分发到指定数目的组中。
各个组有编号,编号从一开始。对于每一个行,NTILE 将返回此行所属的组的编号。
(3)sql四种语句
①数据定义语言,即SQL DDL,用于定义SQL模式、基本表、视图、索引等结构。DROP CREATE ALTER 等语句
②数据操纵语言,即SQL DML。数据操纵分成数据查询和数据更新两类。INSERT(插入) UPDATE(修改) DELETE(删除)
③数据查询语言,即SQL DQL。 SELECT语句
④数据控制语言,即SQL DCL,这一部分包括对基本表和视图的授权、完整性规则的描述、事务控制等内容。 GRANT REVOKE COMMIT ROLLBACK等语句
7 知道死锁吗?
参考:https://blog.****.net/hd12370/article/details/82814348
8 排序算法有哪些?
参考:https://blog.****.net/wy12345432452/article/details/78459512
https://blog.****.net/sunxianghuang/article/details/51872360
9 快速排序知道吗?
参考:https://blog.****.net/weixin_43250623/article/details/88931925
10 二叉树知道吗?
参考:
https://blog.****.net/qq_40772692/article/details/79343914
11 TCP三次握手
第一次握手:客户端发送一个连接请求,测试服务端是否可以正常通信(SYN位置为1)
第二次握手:服务端确认客户端的连接请求,并且同时发送一个请求,测试客户端是否可以正常通信(SYN位置为1, ACK位置为1)
第三次握手:客户端接受到服务端的确认(了解到服务器可以正常通信),之后发送一个ACK,告诉服务器我可以正常通信(ACK位置为1)
如果服务器没有收到客服端的ACK,会超时重传自己的SYN请求,一直到收到服务端的ACK为止。
11 为什么TCP挥手是四次不是三次?
为什么连接的时候是三次握手,关闭的时候却是四次握手?
答:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,“你发的FIN报文我收到了”。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。
12 知道HTTP协议吗?
参考:https://blog.****.net/weixin_38051694/article/details/77777010
https://blog.****.net/sundacheng1989/article/details/28239711
13 发送一个post 请求内容有哪些?
14 post和put的区别
PUT和POS都有更改指定URI的语义.但PUT被定义为idempotent的方法,POST则不是.idempotent的方法:如果一个方法重复执行
多次,产生的效果是一样的,那就是idempotent的。也就是说:
PUT请求:如果两个请求相同,后一个请求会把第一个请求覆盖掉。(所以PUT用来改资源)
Post请求:后一个请求不会把第一个请求覆盖掉。(所以Post用来增资源)
15 404错误
4开头的代表客户错误
404是当用户输入了错误的链接时,返回的页面。
404页面是客户端在浏览网页时,服务器无法正常提供信息,或是服务器无法回应,且不知道原因所返回的页面。
HTTP 404 错误意味着链接指向的网页不存在,即原始网页的URL失效,这种情况经常会发生,很难避免,比如说:网页URL生成规则改变、网页文件更名或移动位置、导入链接拼写错误等,导致原来的URL地址无法访问;当Web 服务器接到类似请求时,会返回一个404 状态码,告诉浏览器要请求的资源并不存在。
导致这个错误的原因一般来说,有三种:
1、无法在所请求的端口上访问Web站点。
2、Web服务扩展锁定策略阻止本请求。
3、MIME映射策略阻止本请求。
16 你来面试这个有什么优势?
参考链接:
https://blog.****.net/DT_Zhangshuo/article/details/83275318
https://blog.****.net/qq_38950316/article/details/81087809
https://blog.****.net/qq_36183935/article/details/80570062