当前位置: 首页 > news >正文

如何在面试中胜出?接口自动化面试题安排上

  • 📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢交流讨论:欢迎加入我们一起学习!
  • 📢资源分享:耗时200+小时精选的「软件测试」资料包
  • 📢 最困难的时候,也就是我们离成功不远的时候!

目录

    • 一、平常用什么工具测接口?
    • 二、HTTP与WebSocket的区别?
    • 三、WebSocket 接口是如何测试的?
    • 四、当一个接口出现异常时候,你是如何分析异常的?
    • 五、接口产生的垃圾数据如何清理?
    • 六、不可逆的操作,如何处理,比如删除一个订单这种接口如何测试?
    • 七、在做自动化过程中遇到的技术难点有哪些?
    • 最后

Hi,大家好。考虑到最近有些小伙伴准备年后跳槽,所以更新一些自动化相关的面试题,希望能帮到大家!

一、平常用什么工具测接口?

主流接口测试工具:Jmeter、PostMan、RESTClient、Fiddler、Requests库,不同测试环境不同需求,选择不同工具。

1).Jmeter:Java开发一款开源免费工具,适合接口功能测试、接口自动化测试、接口压力测试;

2).PostMan:谷歌公司开发的一款工具,分为浏览器插件版和客户端版。适合开发自测接口、测试调试接口;

3).RESTClient:一款国人开发的火狐浏览器插件,界面简单,支持高亮显示,调试、自测;

4).Fiddler:强大的抓包工具,支持接口请求、响应;

5).Requests库:python语言中一个第三方请求库,使用代码测试接口不二选择。

二、HTTP与WebSocket的区别?

WebSocket 是一种基于在单个 TCP 连接上进行全双工通信的协议,是从HTML5开始提供的一种浏览器与服务器之间进行全双工通讯的网络技术,解决了HTTP协议不适用于实时通信的缺点,相较于 HTTP 协议,WebSocket 协议实现了持久化网络通信,可以实现客户端和服务端的长连接,能够进行双向实时通信,协议名为"ws"。

  • 两者都是基于TCP协议进行数据传输,具有可靠的传输能力,而且都是应用层协议;

  • HTTP是单向的通信,只能由客户端向服务端发送请求,服务端无法主动向客户端发送消息;

  • WebSocket是双向通信,客户端和服务端是通过握手建立连接,可实现全双工通信,双方可以同时主动向对方发送消息;

  • WebSocket在建立连接时数据是通过HTTP协议传输的,但是建立之后,真正传输数据时使用的是更加可靠的TCP协议。

三、WebSocket 接口是如何测试的?

WebSocket测试方法

1、在线工具,比较多,按个人使用习惯选择,这里随便推荐一款。

地址:http://www.jsons.cn/websocket/


2、使用Postman测试

①打开postman应用;

②依次点击New–WebSocket;


③ 输入URL及要发送的信息。


3、使用Jmeter测试

使用Jmeter测试WebSocket协议需要安装插件,下载插件后放到Jmeter安装路径中的lib/ext目录下,重启Jmeter后在【选项】菜单中会出现【Plugins Manager】,然后在可用插件Tab页搜索WebSocket,进行安装即可。


安装完成后,在添加【取样器】中会出现6项WebSocket的组件

  • WebSocket Close:用于关闭WebSocket连接

  • WebSocket Open Connection:只建立WebSocket连接,不发送数据

  • WebSocket Ping/Pong:用于心跳检测,为了保持长连接,防止客户端被服务端判定为不活跃而被断开

  • WebSocket Single Read Sampler:用于接收一个(文本或二进制)数据

  • WebSocket Single Write Sampler:用于发送一个(文本或二进制)数据

  • WebSocket request-response Sampler:用于执行基本的请求和响应交换,既能发送数据又可以接收数据

以WebSocket request-response Sampler为例:

四、当一个接口出现异常时候,你是如何分析异常的?

检查请求和响应:首先,我会检查请求和响应的内容,以确定异常的根本原因。这可以通过使用 HTTP 调试工具,如 Postman 或 cURL.来实现。

分析异常信息:如果请求和响应正常,我会检查异常信息。异常信息通常包含堆栈跟踪或错误代码,这些信息有助于确定异常的根本原因。

检查 API 文档:如果异常信息不够明确,我会查看 API 文档,以了解该接口的正确用法。

尝试重现异常:如果异常难以分析,我会尝试重现异常。这可以通过使用相同的参数和请求方法,在不同的环境中调用该接口来实现。

检查依赖项:如果异常不是由接口本身引起的,我会检查该接口所依赖的其他系统。这可以通过检查其他系统的日志和状态来实现。

五、接口产生的垃圾数据如何清理?

我通常会采取以下措施进行清理:

  • 数据清理代码:在生成接口数据时,我会编写相应的数据库清理代码,以便在每次测试运行完毕后自动清理测试数据。这样可以确保测试数据不会对后续测试产生影响。

  • 数据库管理工具:如果数据库中存在垃圾数据,那么我会使用数据库管理工具来清理这些数据。这些工具通常提供了强大的数据清理功能,可以帮助我快速删除不再需要的测试数据。

  • SQL语句:为了删除特定的垃圾数据,我会编写 SQL 语句来执行删除操作。这些 SQL 语句可以根据垃圾数据的特点进行定制,以确保删除的准确性和高效性。

  • 数据备份和还原:在测试过程中,我通常会对敏感数据进行备份,以便在需要时还原。这样可以确保在测试过程中不会丢失重要的数据。

总的来说,对于接口产生的垃圾数据,我会采用多种方法进行清理,以确保测试数据的准确性和可靠性,同时保证测试过程的顺利进行。

六、不可逆的操作,如何处理,比如删除一个订单这种接口如何测试?

对于不可逆操作,比如删除一个订单,我们不能简单地重试操作来恢复数据,因为这可能会导致意外的数据丢失或其他问题。因此,我通常会采取以下方法来测试不可逆操作:

  • 编写合适的测试用例:在测试删除订单等不可逆操作时,我们需要编写合适的测试用例来验证操作的正确性和稳定性。这些测试用例应该模拟实际的删除场景,确保删除操作能够按照预期执行。

  • 备份关键数据:在删除订单等不可逆操作之前,我们应该备份关键数据,以便在操作失败时进行还原。这可以确保我们在测试过程中不会丢失重要的数据。

  • 验证操作结果:在删除订单等不可逆操作后,我们需要验证操作结果是否符合预期。例如,我们可以检查订单是否已经被正确删除,并且是否产生了正确的日志记录。

  • 模拟异常情况:在测试删除订单等不可逆操作时,我们需要模拟各种异常情况,如网络故障、系统崩溃等,以确保操作在这些情况下也能够正常执行。

  • 开发回退机制:对于一些重要的不可逆操作,我们可能需要开发相应的回退机制,以便在操作失败时能够回滚操作,恢复之前的数据状态。

总的来说,对于不可逆操作,我们需要进行充分的测试和验证,确保操作的正确性和稳定性。同时,我们也需要考虑到各种异常情况和回退机制,以确保操作在各种情况下都能够正常执行。

七、在做自动化过程中遇到的技术难点有哪些?

自动化过程中遇到的技术难点因项目和环境而异,以下是一些常见的技术难点:

  • 兼容性问题:自动化测试代码需要在不同的操作系统、浏览器和设备上运行,因此需要解决兼容性问题。这可能涉及到不同的操作系统和浏览器版本,以及不同的设备类型和规格。

  • 数据驱动测试:数据驱动测试是一种常用的自动化测试方法,它可以通过读取数据文件或数据库中的数据来生成测试用例。然而,由于数据的多样性和复杂性,这种方法可能会面临数据管理和维护的挑战。

  • 重复代码:在自动化测试中,我们常常需要重复执行相同的操作或验证相同的逻辑。然而,这种重复代码会导致代码难以维护和扩展,并降低代码的可读性和可维护性。

  • 网络和系统问题:自动化测试通常需要连接到外部系统、服务或网络,因此可能会受到网络和系统问题的影响。这可能会导致测试失败或不稳定的测试结果。

  • 难以模拟复杂的用户行为:自动化测试通常仅限于模拟简单的用户行为,一些复杂的用户行为难以通过自动化测试来模拟。这可能包括用户交互、用户体验和视觉效果等方面。

  • 难以重现问题:自动化测试失败时,我们需要能够重现问题以进行调试和解决。然而,由于测试环境的多样性和复杂性,有时难以重现问题。

  • 难以自动化回归测试:回归测试是一项重复性和繁琐的任务,对于大型软件系统来说尤其如此。自动化回归测试是一项关键任务,但由于代码的频繁更改,有时难以对自动化测试进行维护和扩展。

以上就是今天的全部内容,希望对大家有所帮助,也希望大家多多留言、点赞、在看、转发四连爱❤️ 支持。 咱们下篇文章见,Bye~👋


最后

如果你想学习自动化测试,那么下面这套视频应该会帮到你很多

如何逼自己1个月学完自动化测试,学完即就业,小白也能信手拈来,拿走不谢,允许白嫖....

最后我这里给你们分享一下我所积累和整理的一些文档和学习资料,有需要直接领取就可以了!


以上内容,对于软件测试的朋友来说应该是最全面最完整的备战仓库了,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。

​​

​​​​

相关文章:

如何在面试中胜出?接口自动化面试题安排上

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…...

联邦学习研究综述笔记

联邦学习 联邦学习的定义:联邦学习是一种分布式机器学习架构,包含多个客户端(参与者)和一个聚合服务器。客服端(参与方):在本地使用自己的私有数据训练模型,训练完成之后将模型的参…...

RedisTemplate乱码问题

其实这是在解决一个项目问题是发现的,因为原开发者的大意,造成了系统出现严重的逻辑问题。 因为系统系统采用分模块开发,某模块使用Spring提供的RedisTemplate进行值的读写,另一位使用了框架基于Jedis的一套公用方法进行值的读写…...

Java用户和内核交互图

...

2023.11.14使用bootstrap制作一个简洁的前端注册登录页

2023.11.14使用bootstrap制作一个简洁的前端注册登录页 比较简洁的登录页,主要是为自己开发的一些平台页面做测试用,前端具备功能如下: (1)输入用户名、密码,需补充后端验证代码。 (2&#xff…...

Avatar虚拟形象解决方案,趣味化的视频拍摄与直播新体验

企业们正在寻找新的方式来吸引和保持观众的注意力,一种新兴的解决方案就是使用Avatar虚拟形象技术,这种技术可以让用户在视频拍摄或直播场景中,以自定义的数字人形象出现,同时保持所有的表情和脸部驱动。美摄科技正是这个领域的领军者&#x…...

MongoDB备份与恢复以及导入导出

MongoDB备份与恢复 1、mongodump数据备份 在Mongodb中我们使用mongodump命令来备份MongoDB数据。该命令可以导出所有数据 (数据和数据结构) 或指定数据(集合、部分集合内容)到指定目录中。 语法: mongodump -h dbhost -d dbname -o dbdirec…...

如何挑选猫主食罐头?宠物店自用的5款猫主食罐头推荐!

临近双十二大促,是时候给家里的猫主子屯猫主食罐头了。许多铲屎官看大促的各种品牌宣传,看到眼花缭乱,不知道选哪些猫主食罐头好,胡乱选又怕踩坑。 猫罐头侠闪亮登场!如何挑选猫主食罐头?作为经营宠物店7年…...

立哥先进研发-API安全方案

项目背景:随着技术进步,很多优秀技术也被用在黑灰产之中,例如爬虫系统在票务系统中的滥用,尤其机票系统。机票爬虫们威力之大,让人叹为观止:多数订票网站,真实用户产生的不到10%,其浏…...

小函数:Lambda表达式(Java篇)

Lambda表达式的使用场景:用以简化接口实现。 关于接口实现,可以有很多种方式来实现。例如:设计接口的实现类、使用匿名内部类。 但是lambda表达式,比这两种方式都简单! lambda表达式毕竟只是⼀个匿名方法。当实现的接…...

RSS订阅快速连接Notion

数环通让您可以通过不到几分钟的时间即可实现RSS订阅与Notion的对接与集成,从而高效实现工作流程自动化,降本增效! 1.产品介绍 RSS订阅是数环通的内置应用,很多用户通过RSS订阅来收集自己在各大平台上看的内容,当RSS…...

VMware ubuntu 新虚拟机的创建

根据自己指定的路径安装好vm后。 创建新的虚拟机。 记录一下,下次用到别再忘记了。 如需转载,注明出处! 点赞收藏关注我 以资鼓励 打开vm 软件,点击创建新的虚拟机 选择典型,点击下一步 选择你的ubuntu镜像iso文件 …...

第一篇 《随机点名答题系统》简介及设计流程图(类抽奖系统、在线答题系统、线上答题系统、在线点名系统、线上点名系统、在线考试系统、线上考试系统)

专栏目录 第一篇 《随机点名答题系统》简介及设计流程图(类抽奖系统、在线答题系统、线上答题系统、在线点名系统、线上点名系统、在线考试系统、线上考试系统)-CSDN博客 第二篇 《随机点名答题系统》——题库管理详解(类抽奖系统、在线答题…...

C# .NET6 Log4net输出日志

C# Log4Net用法-CSDN博客: .NET6.0的日志组件Log4net_.net log4net-CSDN博客 在 C# .NET6 开发中,log4net 是一个常用的日志记录框架,它可以帮助我们方便地输出日志信息。本教程将向你展示如何在 C# .NET6 中实现 log4net 的日志输出功能。 整体流程 下…...

python数据结构与算法-03_链表

链式结构 上一节讲到了支持随机访问的线性结构,这次我们开始讲链式结构, 视频里我会说下这两种结构的区别,然后讲解最常见的单链表和双链表。 之前在专栏文章那些年,我们一起跪过的算法题[视频]里实现过一个 lru_cache, 使用到的…...

Springboot-aop的使用

aop:面向切面编程&#xff0c;可以看作是面向对象的补充 举例 1.依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.1</version><relativePath/>…...

数列计算

题目描述 有一列数是 : 请找出这个数列的规律&#xff0c;编写程序计算并输出这个数列的第项&#xff0c;要求是分数形式&#xff0c;并计算这个数列的前项和 ( 结果四舍五入保留两位小数 ) 输入格式 第一行仅有一个正整数 &#xff08;) 。 输出格式 共有 行&#xff0c;第一…...

阿里云全球故障凸显“云集中”风险

阿里云12日发生的全球性故障再次将“云集中风险”推上风口浪尖。这一公有云史上罕见的事件不仅影响了数以万计的企业和服务&#xff0c;也引发了对云服务集中化趋势的深刻反思。 2023年11月12日17:44(GMT8)开始&#xff0c;阿里云基础设施发生严重故障&#xff0c;导致阿里巴巴…...

【2015年数据结构真题】

用单链表保存m个整数&#xff0c;结点的结构为 [data] [link]&#xff0c;且|data|<n(n为正整数)。现要求设计一个时问复杂度尽可能高效的算法&#xff0c;对于链表中 data 的绝对值相等的结点&#xff0c;仅保留第一次出现的结点而删除其余绝对值相等的结点。例如&#xff…...

vxe表格行拖拽

安装第三方插件 import Sortable from sortablejs 可以跟后端商议表格添加seq 顺序&#xff0c; 按照循序排序 secondInput 调用 修改接口api 然后重新获取数据 //在get 请求之后 使用nextTick 使用 const rowDrop () > {nextTick(() > {let xTable2 planDat…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

iview框架主题色的应用

1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题&#xff0c;无需引入&#xff0c;直接可…...