软件测试的面试题

1、HTTP状态码
当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。
HTTP状态码分类
HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型:
HTTP状态码分类
分类 分类描述
1** 信息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误

HTTP状态码的英文为HTTP Status Code。
下面是常见的HTTP状态码:
200 - 请求成功
201 - Created 已创建。成功请求并创建了新的资源
202 - Accepted 已接受。已经接受请求,但未处理完成
301 - 资源(网页等)被永久转移到其它URL
400 - Bad Request 客户端请求的语法错误,服务器无法理解
401 - Unauthorized 请求要求用户的身份认证
403 - Forbidden 服务器理解请求客户端的请求,但是拒绝执行此请求
404 - Not Found 请求的资源(网页等)不存在
500 - Internal Server Error 内部服务器错误
502 - Bad Gateway 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
503 - Service Unavailable 由于超载或系统维护,服务器暂时的无法处理客户端的请求。
504 - Gateway Time-out 充当网关或代理的服务器,未及时从远端服务器获取请求

2、基于web系统测试是应考虑的因素有哪些?
可参考此博客https://blog.csdn.net/lluozh2015/article/details/49079145

功能测试:链接测试、表单测试(用户给信息系统管理员提交信息时,要测试提交操作的完整性,以校验提交给服务器的信息的正确性 )、cookies测试、设计语言测试、数据库测试

性能测试:连接速度测试、负载测试、压力测试

可用性测试:导航测试、图形测试、内容测试、整体界面测试

客户端兼容性测试:平台测试、浏览器测试

安全性测试

3、接口测试用例的编写要点有哪些?
1)必填字段:请求参数必填项、可选项
2)合法性:输入输出合法、非法参数
3)边界:请求参数边界值等
4)容错能力:大容量数据、频繁请求、重复请求(如:订单)、异常网络等的处理
5)响应数据校验:断言、数据提取传递到下一级接口…
6)逻辑校验:如两个请求的接口有严格的先后顺序,需要测试调转顺序的情况
7)性能:对接口模拟并发测试,逐步加压,分析瓶颈点
8)安全性:构造恶意的字符请求,如:SQL注入、XSS、敏感信息、业务逻辑(如:跳过某些关键步骤;未经验证操纵敏感数据)

4、接口测试的步骤有哪些?
1)发送接口请求
2)测试接口获取返回值
3)断言:判断实际结果是否符合预期

5、接口自动化测试的流程?
基本的接口功能自动化测试流程为:需求分析–>用例设计–>脚本开发–>测试执行–>结果分析

6、GET请求和POST请求区别是什么?
GET请求:用于信息获取,相对而言是安全和幂等的;在做数据查询时,建议用GET方式,如:商品信息接口、搜索接口、博客访客接口…
POST请求:表示可能会修改服务器上资源的请求;在做数据添加、修改时,建议用POST方式。如:上传图片接口、登录注册接口…

7、JVM
  参考文:https://blog.csdn.net/qq_29234631/article/details/83620897

8、各个知识点
1.负载测试步骤5个:规划测试计划——创建vuser脚本——定义场景——运行场景——分析结果;
2.性能测试:在一定的负载情况下,系统的响应时间等特性是否满足特定的性能需求;
3.压力测试:指被测系统在一定的资源(cpu,内存)饱和的情况下,系统的运行情况;
4.负载测试:通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力;
5.可靠性测试:被测系统在长时间运行下的情况;
6.配置测试:通过调整被测系统软硬件的不同配置,找到一个最适合北侧系统的配置或者获得被测系统在不同配置下的运行情况;
7.PV:(page view,页面访问量)访问一个url产生一个pv,每日每个网站的总PV量是形容一个网站规模的重要指标;
8.beta测试与alpha测试有什么区别?
beta测试时软件多个用户在一个或者多个用户的实际使用环境下进行的测试。开发通常不再测试现场;
alpha测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试。
9**.UV**:(unique visitor,用户访问量),作为一个独立的用户,访问站点的所有页面均算作一个UV;

9、Jmeter性能指标分析
参考文档:https://blog.csdn.net/qq_24373725/article/details/79127032
服务器监控插件的各个组件的功能介绍
Actiive Threads Over Time:不同时间的活动用户数量展示
AutoStop Listener :自动停止监听器,设置当发生某些预期之外的情况时自动停止测试
average Response Time is greater than 10000ms for 10 seconds :连续10s平均响应时间大于10000ms就停止测试
average Latency is greater than 5000ms for 10 seconds :连接10s平均等待时间大于5000ms就停止测试
Error Rate is greater than 50% for 10 seconds :10s内错误率一直高于50%就停止测试
**Bytes Throughput Over Time:**不同时间吞吐量(字节Bytes)展示,**Throughput是按请求个数来展示的,**比如说1.9/sec,就是每s发送1.9个请求;而这里的展示是按字节Bytes来展示的图表,表示每秒发送多少字节
Composite Graph: 混合图表
在它的Graphs里面可以设置多少个图表一起展示,它可以同时展示多个图表
这里可以将一些图表结合在一起查看性能趋势和走向,有利于对比和结合查看性能
**Hits per Second:**每秒点击量,点击量在性能测试,指的是每秒web服务器接收到的请求数
PerfMon Metrics Collector:服务器性能监测控件,包括CPU,Memory,Network,I/O等等(此功能用到在需监听的服务器上启动startAgent)
根据需要选择CPU,Memory,Network I/O等
Reponse Latencies Over Time:记录客户端发送请求完成后,服务器端返回请求之前这段时间
Respose Times Over Time: 响应时间超时,显示每个采样以毫秒为单位的平均响应时间
Reponse Times Distribution: 显示测试的响应时间分布,X轴显示由时间间隔分组的响应时间,Y轴包含每个区间的样本数
Response Times vs Threads: 线程响应时间,显示响应时间的并行线程的数量如何变化
Transactions per Second: 每秒事务数,服务器每秒处理的事务数
聚合报告:
lable:对应每一个http请求,显示的是http请求的Name,如百度http请求name为baidu
Samples:表示这,一次的测试中一共发出了多少请求
Average:平均响应时间,指的是所有的请求的平均响应时间,默认的情况下是单个请求的平均响应时间,但当使用了“事务控制器”时,则以事物为单位显示平均响应时间
Median:中位数,也就是50%用户的响应时间
90%Line:90%用户的响应时间
Min:最小响应时间
Max:最大的响应时间
Error%:本次测试中出现错误的请求的数量/请求的总数
Throughput:吞吐量,默认情况下表示每秒完成的请求数
Recived KB/Sec:每秒从服务器端接收到的数据量,以kb为计算的单位

Jmeter监控服务器性能指标
CPU:
对于各指标项,数值都是代表百分比,比如默认配置(combined)下在曲线图中看到某个时间的数值是30,即代表此时总的cpu使用时间占比为30%。
有两点比较有用的地方值得说明:一是在Scope区域,可以通过Per Process选项来获取指定进程的CPU使用情况,二是在CPU Cores区域,我们可以选择监控指定的单个Core。

Memory:
各指标项中,usedperc(默认)和freeperc两项的数值代表与总内存的百分比,其余指标项的数值都是指内存大小,选中对应想,可以看到Metric Unit区域单位配置将变为可用,通常Mb会比较适合观察。
同样,也可以选择监控指定进程的数据

Disk I/O:
各指标项中,queue(默认)的数值代表等待I/O队列长度,reads、writes分别代表每秒处理的读/写次数,readbytes、writebytes顾名思义,代表每秒读/写的数据量,单位同样在Metric Unit区域配置,通常Mb会比较适合观察。

你可能感兴趣的:(测试,测试)