Calabash 不支持多手机同步测试,所以不能测试如微信,qq 之类两个手机互发消息的场景。
但是利用 cucumber 调用符合 http 协议的 restful api,就能达到模拟多手机同步测试的目的。
看看如下示意图,应该就明白了
测试网络图:
测试顺序图:
如果双方是对等的,如微信聊天,那么手机上只登录其中一个账号就能测试所有场景。
如果双方是不对等的,如一个买家,一个是商家,
那么,可以先手机上登录买方账号,卖方账号用调用服务器的 restful api 的方式来模拟;
第二步,反过来手机上登录商家账号,买方账号用调用服务器的 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" }
先介绍到这里了,具体用法和示例可以求助百度大大。