面试题

简述HTTP请求过程

 步骤一:

浏览器先向服务器发送 HTTP 请求,包括的内容有:

方法:GET/POST。GET仅请求资源,POST会附带用户数据

路径:/XXX/XXX

域名:由 Host 头指定:Host:www.ganziwen.cn

以及其他相关的 header;

如果是 POST ,那么请求还包括一个 body ,包含用户数据

 步骤二:

服务器向浏览器返回 HTTP 响应,响应包括:

响应代码:200 表成功,3XX 表重定向,4XX 表示客户端发送的请求有错误,5XX 表示跟服务器在处理的过程中发生了错误

响应类型:由 Content-Type 指定

以及相关的 Header;

通常服务器的 HTTP 响应会携带内容,也就是有一个 body ,包含响应的内容,网页的 HTML 源码就在 body 中

步骤三:

如果浏览器还要继续向服务器请求其他资源,比如图片,就再次发送 HTTP 请求,重复步骤一、二

为什么要参数化

  烂大街的回答:模拟真实场景,模拟真实情况

  真实原因:

应用程序/数据库对数据有唯一性要求(应用程序内就是单点登录;数据库内就是该字段为 Unique ,唯一)

避免查询缓存对结果造成失真(重复查询同一条数据,如果该数据的表内开启了查询缓存,则会命中。那么响应时间会比市价值偏小)

Linux

1、用一条命令查出 mysql 的进程并且杀死

2、数据用逗号隔开,第三列数据的数据类型为 int ,计算出第三列的和以及平均值

HTTP状态码以及其出现的原因

HTTP请求响应内容的问题

Redis的数据类型有那些,以及其实现原理

测试环境怎么搭建的?

  常见回答:Jenkins 做持续集成。配置文件怎么改?开发的配置文件是开发的配置文件,有人回答说:我自己手动改。这是很初级的做法。

  面试官想问的是:你会不会 maven ,maven 可以利用 dv 进行编译,可以生成不同的配置文件

怎么做 mock

  fiddler 也能做 mock ,返回结果拦截修改,就是 mock。比如说有个依赖服务,要依赖另外的接口怎么办?用 fiddler 做拦截 mock 或者自己写服务进行 mock

业务测试题目

  1、case设计

  2、讲述之前的一个业务流程

TPS曲线上下抖动,TPS曲线到达最高点不平稳反而下降

  抖动是因为 gc ,下降是因为 上下文切换,频繁中断导致 cpu 时间片分给了内核态 cpu ,用户态 cpu 时间减少

面试问测过系统的 tps

  总结:面试:问你压测的 tps 多少?tps 200
  面试官说这么小?回答:这是我们单机(单应用服务器)测试的结果;
  如果面试官说:这么大?回答:这是多台机器(应用服务器)负载均衡的结果。
  面试官:你做的都是这么小的么?有没有做过更大的?tps 最大的项目?回答:数据在缓存内的项目,单机接口 tps 2000 ,线上 20 台机器,总 tps 大概 4w
  面试官:你用的负载机多少台?回答:我们一般分布式测试,jmeter 用 no -gui 压测。理论上一个机器别超过 1000 并发,jmeter 的分布式别超过 24 台