【软件测试】接口调不通排查分析+常遇面试题总结

目录:导读


前言

1、接口调不通,如何去排查?

1)接口没有任何响应

很多时候在做接口测试时,会发现接口没有任何返回,比如浏览器一直在转圈,或者返回一个空白页面。用接口测试工具时,工具报错,提示"no response"。

排查思路:

先检查接口ip是否正确,可以通过在本机ping 接口的ip,检查网络是否通畅

再检查接口的端口号是否正确,可以通过在本机telnet接口的ip和端口号,检查端口是否能连通

检查项目是否启动或者部署成功,可以找研发确认,或者自己登录到服务器上,通过ps命令检查项目的进程是否存在,然后用tail命令查看部署日志

检查服务器防火墙是否关闭,如果因为安全或者权限问题不能关闭,需要找运维进行策略配置,开放对应的ip和端口号

检查你的客户端(浏览器/测试工具),是否设置了网络代理,网络代理可能会造成请求失败

检查操作系统的host文件,是否绑定了一个错误的ip映射

2)接口有响应但是返回了错误的状态码

有些时候接口会返回一些错误的HTTP状态码,需要根据不同的状态码来确定具体的原因。

排查思路

400:客户端请求错误,比如请求参数格式错误(如json字符串不合法)

401:未授权,比如在请求header里,缺乏必要的信息头(如token、auth等字段)

403:禁止,常见的原因是用户的账号没有对应的url权限,还有就是项目所用的中间件,不允许远程访问(比如Apache)

404:资源未找到,导致这种情况的原因很多,比如:

a> url写错了

b> url后有空格

c> 项目没有启动成功

d> 请求协议不对,如http/https

405:方法不允许,常见的原因是请求方式不正确,比如GET类型接口,使用POST方式去请求

415:不支持的媒体类型,常见原因是请求数据的类型和服务端支持的类型不匹配,比如json接口,需要添加一个信息头Content-type:application/json

500:服务器内部错误,出现这种情况,说明服务端内部报错了,需要登录到服务器上,检查错误日志,根据具体的提示信息再进行排查

502/503/504(Bad Gateway/错误的网关、Service Unavailable/服务无法获得、Gateway Timeout/网关超时)

a>如果单次调用接口就报该错误,说明是后端服务器配置有问题,或者服务不可用,挂掉了

b>如果并发压测时出现此错误,说明是后端压力太大,出现异常,此问题一般是后端出现了响应时间过长或者无响应造成的

2、接口测试常遇面试题

1)怎么理解同步通信?

同步通信指的是客户端发送请求给服务端,服务端必须得回应客户端的请求,也就是说有请求就必须有回应,所以也正因为这个问题同步通信就会出现超时或者堵塞的问题

2)怎么理解异步通信?

异步通信指的是客户端和服务端之间根本不知道对方的存在,他们中间通过消息队列来进行整个通信的,也就说客户端把消息发送给消息队列,服务端从消息队列里面拿取到对应的消息,服务端处理完成后会把这个消息发送给消息队列,然后客户端从消息队列获取这个数据,所以他们根据不知道对方的存在

3)怎么理解cookie,session,token?

HTTP协议是一个无状态协议,所以导致cookie技术的整个发展,cookie是记录用户操作行为的一个状态,但是它存储在客户端,它是不安全的,所以呢我们有整个session,session它是这个存储在服务端的,我们把他成为一个令牌

请按步骤的方式描述session的请求流程

客户端提交账户和密码登陆成功

服务端会生成一个sessionid, 并且存储在服务端,服务端通过set-cookie把生成的sessionid响应给客户端

客户端再次请求服务端,会在请求头里带上sessionid 发送给服务端

服务端接收到sessionid和服务端本地存储的sessionid进行比较,如果相符允许访问个人主页,如果不相符 ,则返回登陆页面

4)如果发送请求,协议状态码返回500的错误,怎么解决?

这个是服务端内部错误,这个是需要找程序员的

5)如何理解协议状态码和业务状态码?

协议状态码是标准的

业务状态码是程序员自己定义的,想怎么定义就怎么定义,很随机很自由。

6)按步骤的方式描述token的请求流程?

按步骤的方式描述cookie的请求流程

以登陆为案例来说明cookie的流程

客户端输入账户和密码登陆成功

服务端生成cookie的信息,通过响应头中的set-cookie把生成的cookie返回给客户端。

客户端在下次请求的时候,通过请求头中的cookie把返回的cookie带上发送给服务端,服务端内部进行验证

7)在get请求里面。如果有请求参数,使用的参数是那个的?

我们在postman中我们通过params,路径参数,如果在jmeter中我们直接添加到路径的请求地址里面

8)在postman里面在哪里填写请求参数?

如果是get请求,那么它的路径参数就是在params,如果是POST请求他的数据格式是表单那么我们是在Body里面勾选x-www,如果是json的格式那么我们raw里面勾线json填写json的数据格式,如果是XML的格式那么我们就勾选XML在里面填写XML的数据格式

9)详细描述下API自动化测试的流程?

首先我们先梳理产品过程当中哪些模块可以做自动化测试,梳理完成后,我们和相关的主管领导去对一下,对完之后我们通过jmeter工具或者postman工具,我们把复盘之后我们就上相关的领导进行评审,评审看我们的断言对不对,看你的结构对不对

10)详细描述下你使用ant是怎么做API的测试的

JMeter整合Ant工具来生成测试报告步骤:

搭建ant的环境,(把 ant 的bin路径加在path里面)验证方式:ant -v

在jmerer的extras目录下找到ant-jmeter-1.1.1.jar,把它copy到ant的apache-ant-1.10.0\lib下

编写build.xml文件

定义了执行那个测试脚本

实现自动发送邮件

自动生成测试报告

打开jmeter的bin目录下的jmeter.properties文件,做如下修改:

把jmeter.save.saveservice.output_format=csv

修改为jmeter.save.saveservice.output_format=xml

activation.jar,commons-email-1.2.jar,mail.jar,这三个文件放在ant的lib目录下

完善build.xml文件后,在控制台进入到build.xml文件

输入ant即可

|-------------------------------------|
| 下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |

一、Python编程入门到精通

二、接口自动化项目实战

三、Web自动化项目实战

四、App自动化项目实战

五、一线大厂简历

六、测试开发DevOps体系

七、常用自动化测试工具

八、JMeter性能测试

九、总结(尾部小惊喜)

每一次努力都是自己的投资,每一份付出都将成就更加辉煌的未来。坚定前行,勇往直前,因为只有不断超越自己,才能成就非凡。

生命因奋斗而绽放,每一份汗水都是未来的灿烂;坚韧不拔,才能走出属于自己的辉煌之路。别停下脚步,因为你可以更强大。

在每一个黎明之前,总有黑夜的挣扎;在每一次坠落之后,必有勇气的奋起。不放弃,不言败,让梦想的火焰照亮前行的路途。

相关推荐
程序员杰哥17 小时前
接口自动化测试之pytest 运行方式及前置后置封装
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·pytest
互联网杂货铺19 小时前
功能测试、性能测试、安全测试详解
自动化测试·软件测试·python·功能测试·测试工具·性能测试·安全性测试
测试老哥1 天前
Pytest+Selenium UI自动化测试实战实例
自动化测试·软件测试·python·selenium·测试工具·ui·pytest
weixin_434936281 天前
查看服务应用是否有跑起来命令
功能测试
JZMSYYQ1 天前
什么是梯度磁场
功能测试·测试工具
天才测试猿2 天前
接口自动化测试之pytest接口关联框架封装
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·pytest
半导体守望者2 天前
英福康INFICON VGC501, VGC502, VGC503 单通道、双通道和三通道测量装置
经验分享·笔记·功能测试·自动化·制造
互联网杂货铺2 天前
unittest自动化测试实战
自动化测试·软件测试·python·测试工具·程序人生·职场和发展·测试用例
Tom Boom3 天前
40. 自动化异步测试开发之编写异步业务函数、测试函数和测试类(类写法)
运维·自动化测试·python·selenium·自动化·自动化测试框架·异步编程
慧都小项3 天前
微服务测试困境?Parasoft SOAtest的自动化、虚拟化与智能分析来袭!
自动化测试·parasoft·智能修复·服务虚拟化·ota升级·微服务测试