验收测试主要针对传出的http请求

Acceptance testing focused on outgoing http requests

本文关键字:http 请求 验收测试      更新时间:2023-09-26

这似乎是一个奇怪的问题,因为我没有看到任何在线讨论或教程,所以我认为人们通常不会这样做——但当接受标准是特定用户交互导致的网络应用程序发送的特定网络请求时,有没有什么好的自动接受测试选项?最简单的例子是,用户单击一个按钮,页面上的javascript代码发送一个ajax请求。QA团队希望确定请求确实已发送,并且它具有特定的参数。现在,一个典型的解决方案是完全忽略网络请求,而是检查由这种请求引起的接口更改,但如果请求没有立即产生接口更改,该怎么办?另一种典型的方法是将此类测试转移到单元测试或集成测试级别,但如果QA更希望它在真实的浏览器中工作呢。

那么,编写自动验收测试的选项是什么呢?这些测试从浏览器中的一些用户交互开始,然后断言预期的网络请求已经发送?这样的测试需要什么工具(据我所知,Selenium自己无法做到这一点)?你知道这类测试的任何可用例子吗(实现它的开源项目、描述如何实现它的教程等),或者你能提供一个详细的例子吗?

听起来您想要做的是在测试中模拟前端应用程序的Ajax调用。现在使用Sinon、Angular的httpBackend或jQueryMockjax(我维护的一个库)这样的库很容易做到这一点。

您可以在我不久前写的一篇博客文章中进一步了解这个主题,但基本思想是在Ajax请求到达核心JavaScript XMLHttpRequest接口之前拦截它(从而发送网络请求)。在JS测试中,您可以检查拦截器,看看是否发出了网络请求,以及向其提供了什么

如果不了解你的技术堆栈(JS框架、测试框架等),很难说你会如何设置它,但请看看上面提到的工具。