测试和开发一个复杂的小部件意味着在客户网站上运行的工作流程
Testing and Development Workflow of a complex widget meant to run in a customers website
我想开发一个基于小部件的服务,该小部件在我的客户网站上运行。想想UserVoice或Intercom,但我的可能还包括他们的客户对我的服务和支付处理的身份验证。
你会如何设置测试这样一个复杂的小部件?你会推荐什么样的开发流程?
我建议使用webdriver创建一个端到端(E2E)测试。咖啡和摩卡。您必须为此创建几个程序:
- 模拟客户端服务器-使用小部件提供页面。
- 小部件客户端-从客户端服务器 提供服务
- 小部件服务器-小部件客户端连接的地方。
- Selenium服务器-打开浏览器并启动测试。
您的End2End测试流程将如下所示
- 启动所有服务器:selenium、客户端、widget服务器。
- 测试将运行selenium客户端并连接到selenium服务器。
- selenium服务器将启动浏览器并连接客户端服务器。
- 浏览器将获取客户端软件并等待widget
- widget代码将尝试连接到widget服务。
- 小部件代码将在连接成功时改变ui中的某些内容。
- 您的测试将指示selenium查找该更改。
最后,如果您遵循某种TDD和个人理智,我建议为您的基本测试保留一个简单的E2E,并将尽可能多的逻辑移动到集成/单元测试级别。下面是一些代码,用于在所有服务器启动后获得实际测试的简单概念:
var webdriverio = require('webdriverio');
var options = { desiredCapabilities: { browserName: 'chrome' } };
var client = webdriverio.remote(options);
client
.init()
.url('[ClientServerURL]')
.pause(100000)
.getSomething(/*...*/)
.then(()=>{
//expect results.
})
.end();
相关文章:
- 客户端服务器REST API captcha实现
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 如何使用Socket.io将命令从客户端发送到服务器
- 如何轻松地将服务器端变量从Java代码转移到客户端代码
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- 从客户端获取修改后的对象,并将其与服务器上的原始对象组合
- 如何将我的javascript库公开给其他客户端使用
- 是否可以使用JavaScript/AAJAX在客户端创建一个文件
- 如何使用Javascript客户端对象模型检索Sharepoint 2010列表项权限
- 返回/从Twit's客户端.get
- 将客户端特定的日期格式返回到服务器MVC4
- MobileFirst:在客户端运行计时器作业-最佳选项
- 这个问号在Flow中意味着什么:“;?()=>“无效”;
- 标签客户端的设置值
- 我的客户端选项是什么
- Node.js上的WebSocket,并在所有连接的客户端之间共享消息
- 使用javascript在客户端上使用Web服务
- 通过ajax从客户端调用C#方法来执行C#方法
- SignalR客户端启动连接时如何设置用户
- 测试和开发一个复杂的小部件意味着在客户网站上运行的工作流程