Calabash 不支持多手机同步测试,所以不能测试如微信,qq 之类两个手机互发消息的场景。

但是利用 cucumber 调用符合 http 协议的 restful api,就能达到模拟多手机同步测试的目的。

示意图

看看如下示意图,应该就明白了

测试网络图:

测试网络图

测试顺序图:

测试顺序图

模拟测试方式

如果双方是对等的,如微信聊天,那么手机上只登录其中一个账号就能测试所有场景。

如果双方是不对等的,如一个买家,一个是商家,
那么,可以先手机上登录买方账号,卖方账号用调用服务器的 restful api 的方式来模拟;
第二步,反过来手机上登录商家账号,买方账号用调用服务器的 restful api 的方式了模拟。

cucumber 调用 restful api 的技术

说明一下,calabash 是完全兼容 cucumber 的,所以能直接调用 cucumber 的自定义步骤。

httparty——ruby http client 库,调用符合 http 协议的 restful api

require 'httparty'    

login_url = "http://api.xx.com/login"
headers = { 'Content-Type' => 'application/json' }
body = { username: 'jerry', password: 'tom' }.to_json
options = { body: body, headers: headers }
response = HTTParty.post(login_url,options)

json——ruby json 库,解析 restful api 返回的响应内容,如果是 json 格式的话

json_obj=JSON.parse(response.body)

wrong——ruby assert 库

require 'wrong'    
include Wrong
assert { response.code==200 }
assert { json_obj["username"]=="jerry" }

先介绍到这里了,具体用法和示例可以求助百度大大。


↙↙↙阅读原文可查看相关链接,并与作者交流