Calabash模拟多手机同步测试

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 http client库,解析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" }

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

你可能感兴趣的:(cucumber,calabash,多手机同步测试)