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


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,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。

​​

​​​​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值