基于无状态请求的前端测试思考/讨论
发布于 9 年前 作者 vincenting 3473 次浏览 最后一次编辑是 8 年前 来自 问答

该问题/讨论仅针对 后端仅提供无状态的接口,前端为富应用的情况。

希望将整个前端的开发过程同后端剥离,即后端的开发进度不影响前端的开发进度。所以,测试的代码段将包含下面几个流程:

  1. 页面元素操作(包括表单操作、表单提交、元素操作)
  2. 根据文档验证前端请求的正确性
  3. 控制模拟后端服务器返回特定内容
  4. 验证前端针对该返回内容的响应正确性

例如一个简单的登录代码示例如下:

define "login with right password" do |browser, server|
  password = 'hereIsPassword'
  browser.text_field(id: 'password').set password
  browser.button(id: 'goLogin').click
  server.should_receive('/user/login', password: md5 password)

  server.will_response(code: 200, msg: 'login success')
  browser.button(id: 'result').wait_while_present
  return browser.text.include? '登录成功'
end

在输入框里面输入了东西,然后点击提交,确认发给服务端的内容正确,然后服务端模拟返回结果,然后确认前端正确反馈即页面上出现了正确的内容。

想法可行性在于现在已经有成熟的控制浏览器、或者控制鼠标、键盘操作的第三方开源方案,所以整个实现起来不存在技术风险。前端区分测试环境、验证环境、生成环境来访问不同的地址即可。


想知道各位在这样的场景中是否考虑过如何测试,有什么更好的方案,这样的方案存在的风险。

回到顶部