module Actir::Remote
远程测试环境相关的方法
@author: Hub
@Date: 2015-3-6
Public Class Methods
get_remote_address(num = 0)
click to toggle source
获取远程selenium测试环境的docker镜像的IPAddress
@example : get_remote_address
2
@param : num [Fixnum] selenium-grid 的node镜像的节点数,对应多进程测试时的进程数量
@return : [Array] IPAddress字符串的数组,形如[“127.0.0.1:5555”, “127.0.0.2:5555”]
# File lib/actir/remote.rb, line 23 def self.get_remote_address(num = 0) @docker_cfg = Actir::Config.get("config.test_mode.docker") if @docker_cfg == nil docker_ip = @docker_cfg["ip"] node_sub_name = ( (@docker_cfg["name"] == nil || @docker_cfg["name"] == "") ? "-node" : @docker_cfg["name"]) docker_node_name = $env + node_sub_name docker_inspect_str = "docker inspect -f='{{.NetworkSettings.IPAddress}}' \\`docker ps | grep #{docker_node_name} | grep 5900 | awk '{print \\$11}'\\`" #需要判断执行脚本的环境是本地还是Linux服务器,本地需要ssh puts docker_inspect_str if $debug ip_str = if is_local? `ssh root@#{docker_ip} "#{docker_inspect_str}"` else `#{docker_inspect_str}` end ip_array = ip_str.split("\n") address = [] #如果入参num小于address.size,则返回num个address #如果入参num大于address.size,则返回所有address #如果入参num为0即默认的不传入参,则返回所有address ip_array.each_with_index do |ip, i| address[ip_array.size - 1 -i] = ip + ":" + @docker_cfg["port"] end if ip_array.size >= num && num != 0 return address.first(num) else return address end end
is_local?()
click to toggle source
判断执行环境是否是本地环境(Mac)
# File lib/actir/remote.rb, line 73 def self.is_local? # hostname = `hostname` # hostname.include? "local" # 暂时先默认都是本地环境 return true end