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

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

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性能测试

请添加图片描述

九、总结(尾部小惊喜)

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/709901.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【论文阅读】深度学习在过冷沸腾气泡动力学分割中的应用

Application of deep learning for segmentation of bubble dynamics in subcooled boiling 深度学习在过冷沸腾气泡动力学分割中的应用 期刊信息:International Journal of Multiphase Flow 2023 级别:EI检索 SCI升级版工程技术2区 SCI基础版工程技术3区…

(libusb) usb口自动刷新

文章目录 libusb自动刷新程序Code目录结构Code项目文件usb包code包 效果描述重置reset热拔插使用 END libusb 在操作USB相关内容时,有一个比较著名的库就是libusb。 官方网址:libusb 下载: 下载源码官方编好的库github:Release…

新的一年,如何优化企业库存管理?

随着社会的发展和经济的不断增长,库存管理成为了企业运营中非常重要的一环。库存作为企业的资产之一,直接影响着企业的盈利能力和竞争优势。因此,对企业库存进行科学的分析和管理,成为了确保企业持续稳定发展的必要手段之一。企业…

比亚迪领航新能源时代:汉唐传承,品牌力量

比亚迪,以中国文化的深度与自信,为新能源汽车领域注入强大动力。汉唐车型,不仅承载着中国古代文明的辉煌,更以其创新技术和环保理念,终结油电之争,让燃油车再次破防。作为销量冠军,比亚迪品牌的…

android开发与实战,那些年Android面试官常问的知识点

前言 在做android项目开发时,大家都知道如果程序出错了,会弹出来一个强制退出的弹 出框,这个本身没什么问题,但是这个UI实在是太丑了,别说用户接受不了,就连 我们自己本身可能都接受不了。虽然我们在发布程…

1.2 debug的六种指令的使用,四个通用寄存器

汇编语言 首先进入环境 mount c d:masm //把c挂载在d盘中的masm当中 c: //进入c,进入到编译环境 dir //查看文件,可有可无Debug是DOS、Windows都提供的实模式(8086 方式)程序的调试工具。使用它可以查看CPU各种寄存器中的内容…

C语言基础18 循环

们可能需要多次执行同一块代码。一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。 编程语言提供了更为复杂执行路径的多种控制结构。 循环语句允许我们多次执行一个语句或语句组&#xff0…

leetcode刷题(剑指offer) 46.全排列

46.全排列 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2: 输入&#…

OpenAI Triton 入门教程

文章目录 Triton 简介背景Triton 与 CUDA 的关系 Triton 开发样例样例一:Triton vector addition 算子Triton kernel 实现kernel 函数封装函数调用性能测试 样例二:融合 Softmax 算子动机Triton kernel 实现kernel 封装单元测试性能测试 样例三&#xff…

苍穹外卖Day03——解决总结3中存在的问题

解决Day03中存在的问题 1. ResponseBody 与 RequestBody2. RequestParam 与 PathVariable3. 字段填充技术(注解、AOP、反射)3.1. AOP3.2. 注解3.3. 反射3.5 字段填充在项目应用 4. 阿里云云存储OOS 1. ResponseBody 与 RequestBody ResponseBody&…

面试经典150题——矩阵置零

​"Dream it. Wish it. Do it." - Unknown 1. 题目描述 2. 题目分析与解析 2.1 思路一——暴力求解 思路一很简单,就是尝试遍历矩阵的所有元素,如果发现值等于0,就把当前行与当前列的值分别置为0。同时我们需要注意,…

【Java】基本数据类型、包装类与字符串间的转换 例题

写在前面: 关于这道题,初见感觉有点cpu烧坏了,准确来说是看了网上的一些讲解都感觉不尽人意。自己整理了一下,希望能帮助到大家。 题目: 如下两个题目输出结果相同吗?各是什么。 Object o1 true ? new…

java演唱会网上订票购票系统springboot+vue

随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的交换和信息流通显得特别重要。因此,开发合适的基于springboot的演唱会购票系统的设计与实现成为企业必然要走…

基于uniapp开发小程序,代码上线发布教程【抖音、微信】

本系列文章适合三类同学:1.希望学习小程序开发;2.希望无代码、低代码拥有自己的小程序;3.快速搭建小程序交作业、交毕设的大学生 本系列文章将推出配套桌面端软件,配合软件,可实现傻瓜式开发小程序,请有需求…

@Slf4j 变量log找不到符号,可能是 Gradle 配置文件写得有问题

Slf4j 变量log找不到符号 鄙人在学习 Java 的 spring boot 项目时, 常常因为 maven 配置文件使用 xml 格式过于复杂, 所以更倾向于使用 gradle 作为构建工具. 然而, 在使用 gradle 作为构建工具时, 又需要引用 Lombok 依赖. 有时忘记在初始化项目时添加上 Lombok 依赖, 所以经…

C++ deque详解以及容器适配器

目录 1.容器适配器 2.deque的使用 2.1deque的介绍 2.2deque的缺陷 2.3deque作为stack和queue的可行性 2.4 deque类的使用 2.4.1deque的构造函数 2.4.2deque容量操作 2.4.3deque赋值,插入 1.容器适配器 适配器是一种设计模式(设计模式是一套被人…

idea创建一个简单的maven项目

个人学习笔记(整理不易,有帮助点个赞) 笔记目录:学习笔记目录_pytest和unittest、airtest_weixin_42717928的博客-CSDN博客 添加-DarchetypeCataloginternal 运行参数 (ps:不填的话,maven 骨架生成速度缓慢) 其实我没…

Redis---持久化

Redis是内存数据库,是把数据存储在内存中的,但是内存中的数据不是持久的,如果想要做到持久,那么就需要让redis将数据存储到硬盘上。 Redis持久化有两种策略: RDB > Redis DataBase RDB机制采取的是定期备份AOF …

c# ABB 机械手上位机连接

c# 程式开发和调试步骤如下: ABB 机械手要开启PC Interface功能。ABB 机械手设定ip地址。设定测试笔记本和机械手同一网段,用网线直连机械手,也可以通过交换机连接机械手。确保笔记本能够ping通和telnet 机械手80端口都是OK的。以上都OK的话…

QT C++实践|超详细数据库的连接和增删改查操作|附源码

0:前言 🪧 什么情况需要数据库? 1 大规模的数据需要处理(比如上千上万的数据量)2 需要把数据信息存储起来,无论是本地还是服务上,而不是断电后数据信息就消失了。 如果不是上面的原因化,一般…