使用Nodejs模拟服务器响应

北京中科助力白癜风康复 http://www.ykhongye.com/
我们覆盖模拟任何服务器行为,而不必在后端更改一行代码,所有这些都直接来自前端。前几天,当我在一个新项目的前端工作时,发现自己处于一个需要模拟来自后端的不同响应的情况,以检查不同浏览器中的一些功能和行为。这鼓励我写这篇关于Node.js模拟浏览器的文章。在这一点上,大量的公司都把注意力放在了TDD上,功能测试对于服务器端来说只是一个例行公事,但是在前端开发方面,桌面却是开放的。随着游戏中一些有前途的工具(Selenium脱离了我的头顶),开发人员更喜欢留下一些测试来“人”来执行。为什么会这样呢?由于缺乏坚实的支持社区,或者没有足够数量的文档和指南,也许。但是这个讨论不在这个帖子里进行。回到我原来的观点,它可能是一个选择,在我们的后端做一些临时的快速变化,那就是了。但是如果我们没有控制权呢?我的意思是,它的开发是由其他人所有,而我们所做的只是针对RESTAPI。如果这是你的情况,这里有一个解决方案可以帮助:一个“愚蠢”的服务器,其行为是从前端控制的。为了做到这一点,我们将使用Node.js与Express.js。我们要构建一个服务器,其响应代码和头文件将从单个POST调用中配置。这里有一个你可以遵循的快速指南。Node.js入门我们需要的第一件事就是获得Node。要从命令行安装它,运行:apt-getinstall-gnodejs然后,从我们选择的IDE中创建一个新的Node.js项目,然后安装Express:npminstallexpress最后,但并非最不重要,我们将安装一些能够让我们的生活更轻松的事情,bodyParser:npminstallbody-parser基本设置现在我们可以从我们的模拟服务器开始。这是一个你可以找到有用的演示代码:如上所示,我们将使用2个变量来设置响应代码和标题,缺省值为“OK”,不含标题。我们的服务器将在端口监听。配置呼叫现在是时候把一些有用的代码放在里面了。我们将创建一个POST调用,接收并保存响应代码以及现在应答的一系列头文件。每当我们需要改变我们服务器的行为时,这条路由将从前端调用。换句话说,我们可以设置我们想要从服务器获得的响应,发出POST请求.0.0.1:/configure。一旦我们完成了这个工作,我们将继续进行一个新的调用,而不必介意它的方法或有效负载,而响应将是我们配置的那个。这个调用期望的身体是JSON格式:{“headers”:{“header1″:“content”,“header2″:“content”,…},“code”:“”}*注意:在“代码”中,添加您需要的3位数字代码。以上几行只是一个例子。默认路由只剩下一件事:一个默认路由,它将使用我们在配置中设置的变量:这个函数将被执行,只要它不同于“POST/configure”,响应将会被存储在我们的全局变量的code和headers中。这就是我们所需要的。这意味着是时候来测试它了。在这种特殊情况下,我将使用一个很棒的Chrome扩展Postman来执行配置POST调用,并尝试查看基本访问验证期间显示的默认浏览器对话框,当服务器的响应是“未授权”时显示,标题类似于WWW-Authenticate:Basicrealm=something。首先,我们必须运行我们的服务器。找到包含我们的代码的.js文件,并在命令行中执行它:nodeourFileName.js现在,在Postman中,我们选择POST方法,设置URL.0.0.1:/configure,将Content-Type头application/json添加到,并添加一个与我们的模拟服务器兼容的主体,如下所示:{“headers”:{“WWW-Authenticate”:“Basicrealm=\”CustomRealmName\””},“code”:“”}最后,打开浏览器并转到


转载请注明:http://www.aierlanlan.com/rzgz/7837.html