验收测试主要针对传出的http请求
Acceptance testing focused on outgoing http requests
这似乎是一个奇怪的问题,因为我没有看到任何在线讨论或教程,所以我认为人们通常不会这样做——但当接受标准是特定用户交互导致的网络应用程序发送的特定网络请求时,有没有什么好的自动接受测试选项?最简单的例子是,用户单击一个按钮,页面上的javascript代码发送一个ajax请求。QA团队希望确定请求确实已发送,并且它具有特定的参数。现在,一个典型的解决方案是完全忽略网络请求,而是检查由这种请求引起的接口更改,但如果请求没有立即产生接口更改,该怎么办?另一种典型的方法是将此类测试转移到单元测试或集成测试级别,但如果QA更希望它在真实的浏览器中工作呢。
那么,编写自动验收测试的选项是什么呢?这些测试从浏览器中的一些用户交互开始,然后断言预期的网络请求已经发送?这样的测试需要什么工具(据我所知,Selenium自己无法做到这一点)?你知道这类测试的任何可用例子吗(实现它的开源项目、描述如何实现它的教程等),或者你能提供一个详细的例子吗?
听起来您想要做的是在测试中模拟前端应用程序的Ajax调用。现在使用Sinon、Angular的httpBackend或jQueryMockjax(我维护的一个库)这样的库很容易做到这一点。
您可以在我不久前写的一篇博客文章中进一步了解这个主题,但基本思想是在Ajax请求到达核心JavaScript XMLHttpRequest接口之前拦截它(从而发送网络请求)。在JS测试中,您可以检查拦截器,看看是否发出了网络请求,以及向其提供了什么
如果不了解你的技术堆栈(JS框架、测试框架等),很难说你会如何设置它,但请看看上面提到的工具。
- Meteor如何接收HTTP请求
- 在我的情况下,如何进行http请求
- 使用插件收听Firefox标签的http请求
- http请求使用html而不是json进行响应
- 在node-js路由中发出http请求
- 是否可以在没有HTTP请求或<输入>
- Acync JS HTTP请求通知请求
- PhantomJs在控制台中发出http请求时不会返回任何状态
- PHP处理来自一个页面的http请求,并将其显示在另一个页面上
- Firefox插件-如何发出http请求
- 验收测试主要针对传出的http请求
- 验证HTTP请求来自NFC标签上的点击
- 如何制作'http请求'在Node js中同步
- 为什么我在Cloud9中的http请求总是返回错误
- AngularJS Typeahead和$http请求限制
- HTTP请求使用cURL,但在浏览器中使用javascript时会得到CORS响应
- 如何使用Chrome扩展API获取网页的所有HTTP请求
- 将http请求中的数据传递给C#控制器
- 在初始化路由之前发送$http请求
- 从客户端捕获 HTTP 请求(包括 ajax)