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