appium_connect 1.0.6 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/Android.rb +8 -0
- data/lib/Appium.rb +68 -0
- data/lib/FileSystemHelpers.rb +23 -0
- data/lib/iOS.rb +3 -0
- metadata +5 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0bc443e180f4662bda079df193410f80590896a9
|
4
|
+
data.tar.gz: 35ccaba6f77978aa18c6f0d116f2cbcffc214b9b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 96b27ad393df90e1b3cba1ed4ff7a67ab308317d31c68cc7f4cec4a78916ab7bba8775e858fc10be3e444115146cd161baae7c101bb7090ac7183d37ddf516d8
|
7
|
+
data.tar.gz: 7950519b8e5f0ccc41d03f780b6067a21c92b4ff4852a4a5fed4022235fc3840f2ee4ecf912bf5713e0ac53f49e86cdf8b0012edf34195a3125c9b0d8ddf9096
|
data/lib/Android.rb
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
def get_android_devices
|
2
|
+
ENV["DEVICES"] = JSON.generate((`adb devices`).lines.select { |line| line.match(/\tdevice$/) }.map.each_with_index { |line, index| { udid: line.split("\t")[0], thread: index + 1 } })
|
3
|
+
end
|
4
|
+
|
5
|
+
def get_device_osv udid
|
6
|
+
command = "adb -s #{udid} shell getprop ro.build.version.sdk"
|
7
|
+
`#{command}`
|
8
|
+
end
|
data/lib/Appium.rb
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
|
2
|
+
def appium_server_start(**options)
|
3
|
+
command = 'appium'
|
4
|
+
command << " --nodeconfig #{options[:config]}" if options.key?(:config)
|
5
|
+
command << " -p #{options[:port]}" if options.key?(:port)
|
6
|
+
command << " -bp #{options[:bp]}" if options.key?(:bp)
|
7
|
+
command << " --udid #{options[:udid]}" if options.key?(:udid)
|
8
|
+
command << " --automation-name #{options[:automationName]}" if options.key?(:automationName)
|
9
|
+
command << " --selendroid-port #{options[:selendroidPort]}" if options.key?(:selendroidPort)
|
10
|
+
command << " --log #{Dir.pwd}/output/#{options[:log]}" if options.key?(:log)
|
11
|
+
command << " --tmp /tmp/#{options[:tmp]}" if options.key?(:tmp)
|
12
|
+
command << " --chromedriver-port #{options[:cp]}" if options.key?(:cp)
|
13
|
+
command << " --command-timeout 180"
|
14
|
+
Dir.chdir('.') {
|
15
|
+
if Gem::Platform.local.os == 'linux'
|
16
|
+
pid = system('x-terminal-emulator -e ' + command)
|
17
|
+
elsif Gem::Platform.local.os == 'darwin'
|
18
|
+
`osascript -e 'tell app "Terminal" to do script "#{command}"'`
|
19
|
+
else
|
20
|
+
pid = system('start ' + command)
|
21
|
+
end
|
22
|
+
|
23
|
+
puts 'Waiting for Appium to start up...'
|
24
|
+
sleep 5
|
25
|
+
|
26
|
+
if pid.nil?
|
27
|
+
puts 'Appium server did not start :('
|
28
|
+
end
|
29
|
+
}
|
30
|
+
end
|
31
|
+
|
32
|
+
|
33
|
+
|
34
|
+
def launch_hub_and_nodes(ip, hubIp, nodeDir)
|
35
|
+
|
36
|
+
if Gem::Platform.local.os == 'darwin'
|
37
|
+
|
38
|
+
ios_devices = JSON.parse(get_ios_devices)
|
39
|
+
|
40
|
+
ios_devices.size.times do |index|
|
41
|
+
port = 4100 + index
|
42
|
+
config_name = "#{ios_devices[index]["udid"]}.json"
|
43
|
+
generate_node_config nodeDir, config_name, ios_devices[index]["udid"], port, ip, hubIp, 'MAC', 'safari'
|
44
|
+
node_config = nodeDir + 'node_configs/' +"#{config_name}"
|
45
|
+
appium_server_start config: node_config, port: port, udid: ios_devices[index]["udid"], log: "appium-#{ios_devices[index]["udid"]}.log", tmp: ios_devices[index]["udid"]
|
46
|
+
end
|
47
|
+
|
48
|
+
else
|
49
|
+
|
50
|
+
devices = JSON.parse(get_android_devices)
|
51
|
+
|
52
|
+
devices.size.times do |index|
|
53
|
+
port = 4000 + index
|
54
|
+
bp = 2250 + index
|
55
|
+
sdp = 5000 + index
|
56
|
+
cp = 6000 + index
|
57
|
+
sdkv = get_device_osv(devices[index]['udid']).strip.to_i
|
58
|
+
config_name = "#{devices[index]["udid"]}.json"
|
59
|
+
generate_node_config nodeDir, config_name, devices[index]["udid"], port, ip, hubIp, 'android', 'chrome'
|
60
|
+
node_config = nodeDir + 'node_configs/' +"#{config_name}"
|
61
|
+
if sdkv === 16 || sdkv === 17
|
62
|
+
appium_server_start config: node_config, port: port, bp: bp, udid: devices[index]["udid"], automationName: "selendroid", selendroidPort: sdp, log: "appium-#{devices[index]["udid"]}.log", tmp: devices[index]["udid"], cp: cp
|
63
|
+
else
|
64
|
+
appium_server_start config: node_config, port: port, bp: bp, udid: devices[index]["udid"], log: "appium-#{devices[index]["udid"]}.log", tmp: devices[index]["udid"], cp: cp
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
|
2
|
+
def get_platform()
|
3
|
+
if Gem::Platform.local.os == 'darwin'
|
4
|
+
return :mac
|
5
|
+
elsif Gem::Platform.local.os == 'linux'
|
6
|
+
return :linux
|
7
|
+
else
|
8
|
+
return :windows
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def generate_node_config(nodeDir, file_name, udid, appium_port, ip, hubIp, platform, browser)
|
13
|
+
f = File.new(nodeDir + "node_configs/#{file_name}", "w")
|
14
|
+
f.write( JSON.generate({ capabilities: [{ udid: udid, browserName: udid, maxInstances: 1, platform: platform, deviceName: udid },{ browserName: browser, maxInstances: 1, deviceName: udid, udid: udid, seleniumProtocol: 'WebDriver', platform: platform , applicationName: udid}],
|
15
|
+
configuration: { cleanUpCycle: 2000, timeout: 180000, registerCycle: 5000, proxy: "org.openqa.grid.selenium.proxy.DefaultRemoteProxy", url: "http://" + ip + ":#{appium_port}/wd/hub",
|
16
|
+
host: ip, port: appium_port, maxSession: 1, register: true, hubPort: 4444, hubHost: hubIp } } ) )
|
17
|
+
f.close
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
def create_dir(name)
|
22
|
+
FileUtils::mkdir_p name
|
23
|
+
end
|
data/lib/iOS.rb
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appium_connect
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Watson
|
@@ -19,7 +19,11 @@ extensions: []
|
|
19
19
|
extra_rdoc_files: []
|
20
20
|
files:
|
21
21
|
- bin/AppiumConnect
|
22
|
+
- lib/Android.rb
|
23
|
+
- lib/Appium.rb
|
22
24
|
- lib/AppiumConnect.rb
|
25
|
+
- lib/FileSystemHelpers.rb
|
26
|
+
- lib/iOS.rb
|
23
27
|
homepage: https://github.com/Mattwhooo/AppiumConnect
|
24
28
|
licenses:
|
25
29
|
- MIT
|