Macaca Mac OSX 布署 Reliable

Sencho Kong · April 27, 2016 · Last by PEPSI replied at November 20, 2018 · 3152 hits
本帖已被设为精华帖!

本文主要分享一下从用户角度布署Reliable时遇到的一些问题和使用感受。

Reliable是什么?与Macaca 有什么关系?

Reliable官方地址,Distributed reliable continuous integration service,这是官方的说明,是一个持续集成平台(CI),是一个平台当然是有可视界面.首次接触时就搞不清楚他与Macaca有什么联系,为什么在Macaca的布署文档里有一个CI Service。至于什么是Macaca这里就不再讲了,论坛里已经有很多贴能够说明。后来试着发一封邮件给作者达峰了解这个产品,才知道Macaca是集成在Reliable里的模块,用户可以使用Macaca写测试脚本后,在Reliable里创建测试任务,查看测试结果等操作。由于这个项目刚开源,文档有好多地方还未有完善,既然这是一个CI平台,当然在测试前还可以进行应用打包,测试完成后还可以进行产品发布等操作,达峰说团队正在努力完善中。Reliable这个产品开源对行业的贡献是十分具大的,所以希望本文能够帮助到想使用它的朋友,并且能为Reliable的发展为一分贡献。

Reliable布署

Reliable的布署使用Docker进行布署,本人也是首次接触Docker,是按照Docker的官方文档进行安装,在Mac OS上安装都是挺傻瓜的,没什么技术含量,这里不多说,论坛也有贴子介绍用 Docker 做自动化持续集成 - Macaca 部署完整版

1. 首先安装Reliable的 mastermaster deploy

安装成功后会有下图的4个容器,并且是有显示正常运行的绿色图标

2. 安装Reliable的 slaveslave deploy
为什么要装slave?因为Reliable是分布式架构,mater主要是任务调度,slave才是真正跑用例执行任务的,还有就是可以分负载均衡,当然你用例多的时候还可以加slave.安装成功后把slave跑起来。

reliable server -m <reliable-master:port> --verbose

reliable-master是你的master主机地址

OK!如果你能顺利到跑到这里已经是成功了。let's go on!

3. 看看Reliable庐山真面

这里登录进去,没什么好说的

这里看到已经挂了一个slave,说明是成功的,如果slave的数量为0请启动slave再刷新页面。

创建一个任务,这里的任务task就是你一系列的用例,可以是一个新功能的用例,可以是一个全回归用例,用例使用Macaca进行编写,这里我们使用官方提供的ipa包进行测试,用例也是官方的,有少少改动,删除了desker top的用例,只是保留了iOS的,并例把搜索关键字改为我公司的了(这里打了小小广告,望谅)。

用例仓库地址 https://github.com/sencho/macaca-test-sample
此用例仓库里要添加一个.macaca.yml文件,内容为webdriver_server: true
填写用例仓库地址,时间间隔。

添加任务后slave的控制台会开始跑

以下是跑用例的截图



最后用例都成功,如果想手动再跑一次,可以按Retry.

祝大家顺利布署,欢迎交流,最后再次感谢作者达峰的帮助!

QQ:147886833

共收到 26 条回复 时间 点赞

非常不错的实践啊 👍

很详尽的使用文档 macaca与reliable的关系理清楚了 很棒!

Reliable 文档的确不完善,抱歉,我们会紧赶的

赞!很详细的介绍了 Reliable 和 Macaca 的使用。

@monkey 申请加精!

Macaca 与 reliable, jenkins, travis-ci, gitlab-ci 这些集成系统配合使用时候的详细配置,我们抓紧在文档中给出

#5楼 @jsenjoy O了!继续加油

#6楼 @xdf 在Windows下能部署吗?

#8楼 @kilmer master 支持 Docker的,Docker 环境有就好

#9楼 @xdf 好的 谢谢 . 我试一下.

#9楼 @xdf reliable 只能调度Macaca编写的脚本任务吗? 如果是Appium编写的脚本,能否使用reliable开启测试,并收集测试数据。我看了一下官方的文档,没有这方面的介绍呢

用 Docker 果然很方便

第一步的链接打不开

  1. 首先安装Reliable的 mastermaster deploy

已经成功的创建了new Task。不过 slave控制台没有看到什么日志。话说我的测试用例 如果是通过 外部传入参数的方式执行。比如
macaca run ios 活着 run andriod,这种task里面怎么给执行参数呢

😰 我的case如果全部执行成功,没有retry这个按钮额,只有失败的才有 retry

#15楼 @cxf 可进群讨论287162474

链接打不开也

Reliable的 master和slave怎么安装的啊,上面一句话就带过了,具体步骤在哪里安装,命令什么的,初学者有点闹不懂@xdf

可以测试 appium 的脚本吗

测试通过后点击查看报:
reliable render template:task failed
这个怎么解决呢?
@sencho

@tediwang reliable要求能够对Node.js二次研发 定制插件,建议你用jenkins

请教下,使用make adduser命令创建管理员账号,成功后登录 http://localhost:8080/dashboard,提示没有此用户。
然后通过web注册普通用户,可以登录,之后查找数据库也没有找到。
请问通过命令和web注册的用户在哪个db里面存呢?

db.createUser(
... {
... user: "admin",
... pwd: "admin",
... roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
... }
... )
Successfully added user: {
 "user" : "admin",
 "roles" : [
  {
   "role" : "userAdminAnyDatabase",
   "db" : "admin"
  }
 ]
}

登录的时候提示没有此用户?

show collections
admin
system.users
system.version

db.admin.find().count();
0

23Floor has been deleted
24Floor has been deleted

命令行没报错,但也没有执行任务,输出信息中port: undefined。
有两个问题请教:

flow.js:99:12 [worker:1] pid:33862 Task 59c8b432fcec181e00801c9f start git clone...
flow.js:116:12 [worker:1] pid:33862 Task 59c8b432fcec181e00801c9f start git clone success!
flow.js:127:14 [worker:1] pid:33862 Sending 59c8b432fcec181e00801c9f data ...
channel.js:69:16 [worker:1] pid:33862
<--- zmq message
{ type: 'task',
taskId: '59c8b432fcec181e00801c9f',
sysInfo:
{ cpus:
[ { model: 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz',
speed: 2700,
times: { user: 13184630, nice: 0, sys: 13457990, idle: 133796490, irq: 0 } },
{ model: 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz',
speed: 2700,
times: { user: 4510840, nice: 0, sys: 3650390, idle: 152267460, irq: 0 } },
{ model: 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz',
speed: 2700,
times: { user: 11846810, nice: 0, sys: 10018990, idle: 138562930, irq: 0 } },
{ model: 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz',
speed: 2700,
times: { user: 4584800, nice: 0, sys: 3636000, idle: 152207840, irq: 0 } },
[length]: 4 ],
memory: 0.011448860168457031,
type: 'Darwin',
platform: 'darwin',
uptime: '5d 22h 55m',
release: '16.7.0',
hostname: 'bogon',
port: undefined },
status: 'busy',
body: 'done! your test case exited with code \n\n' }
flow.js:72:12 [worker:1] pid:33862 Task is end with 59c8b432fcec181e00801c9f data...
channel.js:69:16 [worker:1] pid:33862
<--- zmq message
{ type: 'task',
taskId: '59c8b432fcec181e00801c9f',
sysInfo:
{ cpus:
[ { model: 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz',
speed: 2700,
times: { user: 13184630, nice: 0, sys: 13457990, idle: 133796490, irq: 0 } },
{ model: 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz',
speed: 2700,
times: { user: 4510840, nice: 0, sys: 3650390, idle: 152267460, irq: 0 } },
{ model: 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz',
speed: 2700,
times: { user: 11846810, nice: 0, sys: 10018990, idle: 138562930, irq: 0 } },
{ model: 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz',
speed: 2700,
times: { user: 4584800, nice: 0, sys: 3636000, idle: 152207840, irq: 0 } },
[length]: 4 ],
memory: 0.011448860168457031,
type: 'Darwin',
platform: 'darwin',
uptime: '5d 22h 55m',
release: '16.7.0',
hostname: 'bogon',
port: undefined },
status: 'available',
body: 'false',
bodyStatus: 2,
extra: {} }

命令行没报错,但也没有执行任务,输出信息中port: undefined。
有两个问题请教:
1、Git上有app,下载会出现超时情况?如果删除app,Git clone的时候回因为没有app而运行不起来;
2、Git clone的代码存放在哪个地方?

flow.js:99:12 [worker:1] pid:33862 Task 59c8b432fcec181e00801c9f start git clone...
flow.js:116:12 [worker:1] pid:33862 Task 59c8b432fcec181e00801c9f start git clone success!
flow.js:127:14 [worker:1] pid:33862 Sending 59c8b432fcec181e00801c9f data ...
channel.js:69:16 [worker:1] pid:33862
<--- zmq message
{ type: 'task',
taskId: '59c8b432fcec181e00801c9f',
sysInfo:
{ cpus:
[ { model: 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz',
speed: 2700,
times: { user: 13184630, nice: 0, sys: 13457990, idle: 133796490, irq: 0 } },
{ model: 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz',
speed: 2700,
times: { user: 4510840, nice: 0, sys: 3650390, idle: 152267460, irq: 0 } },
{ model: 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz',
speed: 2700,
times: { user: 11846810, nice: 0, sys: 10018990, idle: 138562930, irq: 0 } },
{ model: 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz',
speed: 2700,
times: { user: 4584800, nice: 0, sys: 3636000, idle: 152207840, irq: 0 } },
[length]: 4 ],
memory: 0.011448860168457031,
type: 'Darwin',
platform: 'darwin',
uptime: '5d 22h 55m',
release: '16.7.0',
hostname: 'bogon',
port: undefined },
status: 'busy',
body: 'done! your test case exited with code \n\n' }
flow.js:72:12 [worker:1] pid:33862 Task is end with 59c8b432fcec181e00801c9f data...
channel.js:69:16 [worker:1] pid:33862
<--- zmq message
{ type: 'task',
taskId: '59c8b432fcec181e00801c9f',
sysInfo:
{ cpus:
[ { model: 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz',
speed: 2700,
times: { user: 13184630, nice: 0, sys: 13457990, idle: 133796490, irq: 0 } },
{ model: 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz',
speed: 2700,
times: { user: 4510840, nice: 0, sys: 3650390, idle: 152267460, irq: 0 } },
{ model: 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz',
speed: 2700,
times: { user: 11846810, nice: 0, sys: 10018990, idle: 138562930, irq: 0 } },
{ model: 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz',
speed: 2700,
times: { user: 4584800, nice: 0, sys: 3636000, idle: 152207840, irq: 0 } },
[length]: 4 ],
memory: 0.011448860168457031,
type: 'Darwin',
platform: 'darwin',
uptime: '5d 22h 55m',
release: '16.7.0',
hostname: 'bogon',
port: undefined },
status: 'available',
body: 'false',
bodyStatus: 2,
extra: {} }
@sencho

Author only
Author only
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up