测试面试题集合

本面试集合分为 四大类

                            一.web+网络

1. http代码表

404:找不到资源

500:服务器内部错误,无法完成请求。

501:服务器不支持请求的功能,无法完成请求。

502:充当网关或代理的服务器,从远端服务器接收到了一个无效的请求。

301:永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI,今后任何新的请求都应使用新的URI代替。

302:临时移动。与301类似。但资源只是临时被移动,客户端应继续使用原有URI。

200:成功。

2. TCP/IP四层网络模型

链路层、网络层、传输层、应用层。

3. TCP/UDP区别?

TCP:可靠传输协议,需要三次握手连接,有确认重传机制,特点是可靠、准确、有拥塞控制,缺点就是比较慢,传输量比较小,适用于升级、下载;一句话:TCP是可靠的传输。

UDP:不可靠传输协议,面向非连接的协议,优点是传输量大、速度快,缺点是已丢失、没有拥塞控制,适用于直播、视频等。一句话:UDP是不可靠的传输。

4.Get 和post 请求的区别

get和post请求都是客户端向服务器提交的一种请求方式

1.get 请求的参数是在URL上传递的,而post参数是在request body里

2.Get请求是不安全的,因为参数直接暴露在URL里,所以不能传递敏感信息

3.Get 请求的URL有长度限制,而post没有

4.Get请求的参数会被完整的保留在浏览器历史记录中,而post的参数不会保留

5.GET请求只能进行url编码,而POST支持多种编码方式

6.对参数的数据类型,GET只接受ASCII字符,而POST没有限制

5.HTTP和HTTPS协议区别?实现机有什么不同?

1. http是超文本传输协议,信息是明文传输,是由请求和响应两部分组成的,请求由请求头、请求行、请求正文组成,响应由响应头,响应行,响应正文组成;https是面向安全的超文本传输协议。

2. http与https使用的是不同的连接方式,端口也不一样,http默认端口是80;https默认端口是443;

3. http连接状态比较简单,是无状态的;https协议是由ssl+http协议组成的可进行传输、身份认证的网络协议。

6. html css js运行的先后顺序是什么?

界面加载的时候先加载html在加载css最后加载js

7. session和cookie的区别是什么

1).存储的位置不同:session是在服务器端存储的,而cookie是在浏览器中存储的;
2).安全性不同:因为cookie是在浏览器中存储的,可以随意进行修改和伪造,所以安全性一般;
3).容量和个数限制不同:cookie有容量限制,每个站点下的cookie也有个数限制;
4).存储多样性:session可以存储在Redis、数据库和应用程序中,而cookie只能存储在浏览器中。
 

               二、接口测试

1. 怎么用JMeter测试接口?

如果使用JMeter进行接口测试:

1) 测试前了解需求,根据接口规格说明书梳理业务;

2) 接下来设计用例,分析接口的入参和出参,分清楚有哪些有效输入和无效输入,设计用例(原则:用最少的用例覆盖所有有效输入,针对每一个无效的输入设计一个测试用例,如果有错误码没有覆盖到,还要对每个未覆盖的错误码分别设计一个用例);

3) 准备测试数据,比如:测试所需的账号、密码、key 等信息;

4) 打开JMeter,创建一个线程组,根据接口类型,填写好对应的接口地址和请求方式等;

5) 参数化配置,添加配置元件CSV Data Set Config,定义变量,并准备CSV格式的数据,变量的引用用${变量名}的格式;

6) 添加断言来判断测试结果的正确性,用得最多的是响应断言;

7) 添加监听器,比如查看结果树,对测试结果进行监听;

8) 运行测试用例;

9) 查看监听器结果,来判断用例的执行是成功还是失败,针对失败的用例,分析其失败原因;

10) 针对测试中发现的问题,给开发提单,直到问题最终解决。

11) 最后输出测试报告。

2. 怎么用Postman测试接口?

如果使用Postman测试接口:

其中1,2,3点相同,工具使用方面则比JMeter跟简单,工具的主要的步骤是添加对应的请求、填写主机URL及入参、添加测试套、运行测试套、分析结果出报告。

3. 在JMeter上如何把上一个请求的结果作为下一个请求的参数?

使用正则表达式提取器提取上一个请求的响应中的信息,保存一个引用名称比如abc,在下一个请求的参数中,用${abc}的格式来引用提取的结果。

常用的正则表达式格式:(.+?),其中.表示匹配任意字符串,+表示只匹配一次,?表示匹配到就停下来。

                  三、性能测试

1.性能测试的流程

一般是我们功能测试完成最后两三天时间测试性能。

1、先是分析需求计算出并发数,TPS,响应时间和 CPU,内存,硬盘和网络IO这些指标。

2、制定测试方案,主要包括环境,计划和具体测试那些场景(如可靠性,并发,负载,压力测试等)

3、根据场景用Badboy录制脚本,导出为JMeter工具支持的脚本。

4、用JMeter工具打开脚本,进行脚本调试,加一些断言,监听器,参数化等。

5、接下来执行性能测试,然后主要收集监听器和收集服务器CPU,内存,硬盘和网络IO等分析是否满足需求,如果满足就输出性能测试报告。

6、如果指标不能满足,反馈给开发进行调优。调优后继续测试,一直到满足需求后最终输出测试报告。

2.什么是性能测试

       性能测试是通过测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

目的:验证软件系统是否能达到用户提出的性能指标,发现系统中存在的性能瓶颈并加以优化。

性能测试包含:

压力测试,强调极端暴力;

稳定性测试:在一定压力下,长时间运行的情况

基准测试:在特定条件下的性能测试;

负载测试:不同负载下的表现;容量测试:最优容量。

       

你可能感兴趣的:(面试)