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

  • 📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢交流讨论:欢迎加入我们一起学习!
  • 📢资源分享:耗时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,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。

​​

​​​​

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

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

相关文章

AIGC 技术在淘淘秀场景的探索与实践

本文介绍了AIGC相关领域的爆发式增长,并探讨了淘宝秀秀(AI买家秀)的设计思路和技术方案。文章涵盖了图像生成、仿真形象生成和换背景方案,以及模型流程串联等关键技术。 文章还介绍了淘淘秀的使用流程和遇到的问题及处理方法。最后,文章展望…

从一到无穷大 #19 TagTree,倒排索引入手是否是优化时序数据库查询的通用方案?

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。 文章目录 文章主旨时序数据库查询的一般流程扫描维度聚合时间聚合管控语句 TagTree整体结构索引…

ArkTS - HarmonyOS服务卡片(创建)

可以参考官网文档 其中我们在已有的文件中File > New > Service Widget创建你想要的小卡片 本文章发布时目前可使用的模板就三种 有卡片后的new 最终效果

「Verilog学习笔记」实现3-8译码器①

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 分析 ① 本题要求根据38译码器的功能表实现该电路,同时要求采用基础逻辑门实现,那么就需要将功能表转换为逻辑表达式。 timescale 1ns/1nsmodule d…

K8S基础笔记

1、namespace 名称空间用来对集群资源进行隔离划分,默认只隔离资源,不隔离网络k8s默认的名称空间为default 查看k8s的所有命名空间 kubectl get namespace 或者 kubectl get ns 创建名称空间 kubectl create ns 名称 或使用yaml方式 编写yamlkub…

竞赛 题目:基于大数据的用户画像分析系统 数据分析 开题

文章目录 1 前言2 用户画像分析概述2.1 用户画像构建的相关技术2.2 标签体系2.3 标签优先级 3 实站 - 百货商场用户画像描述与价值分析3.1 数据格式3.2 数据预处理3.3 会员年龄构成3.4 订单占比 消费画像3.5 季度偏好画像3.6 会员用户画像与特征3.6.1 构建会员用户业务特征标签…

应试教育导致学生迷信标准答案惯性导致思维僵化-移动机器人

移动机器人课程群实践创新的困境与突围 一、引言 随着科技的快速发展,工程教育变得越来越重要。然而,传统的应试教育模式往往侧重于理论知识的传授,忽视了学生的实践能力和创新精神的培养。这在移动机器人课程群的教学中表现得尤为明显。本文…

05-Spring Boot工程中简化开发的方式Lombok和dev-tools

简化开发的方式Lombok和dev-tools Lombok常用注解 Lombok用标签方式代替构造器、getter/setter、toString()等重复代码, 在程序编译的时候自动生成这些代码 注解名功能NoArgsConstructor生成无参构造方法AllArgsConstructor生产含所有属性的有参构造方法,如果不希望含所有属…

树莓派通过网线连接电脑(校园网也能连接),实现SSH连接

前言 之前通过串口登入树莓派,太麻烦,通过网络登入树莓派,学校校园网又连接不了,想起来可以使用网线连接树莓派和电脑。 目录 树莓派通过网线连接电脑思路分析 树莓派通过网线连接电脑实现 1.硬件需求 2.打开Windows的网络 …

【高级程序设计】Week2-4Week3-1 JavaScript

一、Javascript 1. What is JS 定义A scripting language used for client-side web development.作用 an implementation of the ECMAScript standard defines the syntax/characteristics of the language and a basic set of commonly used objects such as Number, Date …

Kotlin学习之函数

原文链接 Understanding Kotlin Functions 函数对于编程语言来说是极其重要的一个组成部分,函数可以视为是程序的执行,是真正活的代码,为啥呢?因为运行的时候你必须要执行一个函数,一般从主函数入口,开始一…

ES6中实现继承

本篇文章主要说明在ES6中如何实现继承,学过java的小伙伴,对class这个关键字应该不陌生,ES6中也提供了class这个关键字作为实现类的语法糖,咱们一起实现下ES6中的继承。 实现思路 首先直接通过class来声明一个Teacther类&#xff…

Docker中的RabbitMQ已经启动运行,但是管理界面打不开

文章目录 前言一、解决方法方法一方法二 总结 前言 肯定有好多小伙伴在学习RabbitMQ的过程中,发现镜像运行,但是我的管理界面怎么进不去,或者说我第一天可以进去,怎么第二天进不去了,为什么每次重新打开虚拟机都进不去…

笔记55:长短期记忆网络 LSTM

本地笔记地址:D:\work_file\DeepLearning_Learning\03_个人笔记\3.循环神经网络\第9章:动手学深度学习~现代循环神经网络 a a a a a a a a a

使用Jupyter Notebook调试PySpark程序错误总结

项目场景: 在Ubuntu16.04 hadoop2.6.0 spark2.3.1环境下 简单调试一个PySpark程序,中间遇到的错误总结(发现版对应和基础配置很重要) 注意:在前提安装配置好 hadoop hive anaconda jupyternotebook spark zo…

开源与闭源:创新与安全的平衡

目录 一、开源和闭源的优劣势比较 一、开源软件的优劣势 优势 劣势 二、闭源软件的优劣势 优势 劣势 二、开源和闭源对大模型技术发展的影响 一、机器学习领域 二、自然语言处理领域 三、数据共享、算法创新与业务拓展的差异 三、开源与闭源的商业模式比较 一、盈…

使用npm发布自己的组件库

在日常开发中,我们习惯性的会封装一些个性化的组件以适配各种业务场景,突发奇想能不能建一个自己的组件库,今后在各种业务里可以自由下载安装自己的组件。 一. 项目搭建 首先直接使用vue-cli创建一个vue2版本的项目,并下载好ele…

【数据结构】前言

数据结构是在计算机中维护数据的方式。 数据结构是OI重要的一部分。 同的数据结构各有优劣,能够处理的问题各不相同,而根据具体问题选取合适的数据结构,可以大大提升程序的效率。 所以,学习各种各样的数据结构是很有必要的。 数据…

使用 VPN ,一定要知道的几个真相!

你们好,我的网工朋友。 今天想和你聊聊VPN。在VPN出现之前,企业分支之间的数据传输只能依靠现有物理网络(例如Internet)。 但由于Internet中存在多种不安全因素,报文容易被网络中的黑客窃取或篡改,最终造…

精密云工程:智能激活业务速率 ——华为云11.11联合大促倒计时 仅剩3日

现新客3.96元起,下单有机会抽HUAWEI P60 Art,福利仅限双十一,机会唾手可得,立即行动! 双十一购物节来临倒计时,华为云备上多款增值产品,以最优品质迸发冬日技术热浪,满足行业技术应用…