super-test 1.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGE.txt +9 -0
- data/README.txt +13 -0
- data/bin/idb +19 -0
- data/bin/ii +113 -0
- data/bin/istart_mock +36 -0
- data/bin/istop_mock +16 -0
- data/bin/kk +181 -0
- data/bin/rubyatp +42 -0
- data/bin/start_mock +36 -0
- data/bin/stop_mock +16 -0
- data/bin/xgo +45 -0
- data/conf/conf.rb +11 -0
- data/conf/db03.yml +31 -0
- data/conf/db13.yml +37 -0
- data/conf/db19.yml +33 -0
- data/conf/online.yml +32 -0
- data/conf/super_test.yml +40 -0
- data/conf/system.yml +26 -0
- data/conf/sz00.yml +31 -0
- data/conf/sz06.yml +34 -0
- data/conf/wise00.yml +11 -0
- data/data/case.house +0 -0
- data/data/char.house +0 -0
- data/data/images/Bluehills.jpg +0 -0
- data/data/images/Sunset.jpg +0 -0
- data/data/images/Waterlilies.jpg +0 -0
- data/data/images/Winter.jpg +0 -0
- data/data/query.house +18595 -0
- data/data/user.house +8 -0
- data/lib/action/module/check_action.rb +58 -0
- data/lib/action/module/cnnt_action.rb +161 -0
- data/lib/action/module/datacenter_action.rb +48 -0
- data/lib/action/module/http_pack_helper.rb +163 -0
- data/lib/action/module/httpserver_action.rb +297 -0
- data/lib/action/module/inc.rb +21 -0
- data/lib/action/module/mcpack_action.rb +57 -0
- data/lib/action/module/sql_action.rb +84 -0
- data/lib/action/module/ssh_action.rb +37 -0
- data/lib/action/system/user_action.rb +180 -0
- data/lib/common/appium_helper.rb +217 -0
- data/lib/common/atp_helper.rb +74 -0
- data/lib/common/atp_report.rb +344 -0
- data/lib/common/data_house.rb +405 -0
- data/lib/common/data_model.rb +87 -0
- data/lib/common/http/assert_helper.rb +343 -0
- data/lib/common/http/fix_hpricot.rb +118 -0
- data/lib/common/http/html_helper.rb +362 -0
- data/lib/common/http/http_helper.rb +469 -0
- data/lib/common/http/multipart.rb +81 -0
- data/lib/common/isandbox_helper.rb +195 -0
- data/lib/common/json_helper.rb +43 -0
- data/lib/common/mock_helper.rb +168 -0
- data/lib/common/mtop_helper.rb +141 -0
- data/lib/common/myconf_helper.rb +49 -0
- data/lib/common/mylog_helper.rb +77 -0
- data/lib/common/pairwise.rb +121 -0
- data/lib/common/query_house.rb +89 -0
- data/lib/common/report_helper.rb +97 -0
- data/lib/common/robot_helper.rb +85 -0
- data/lib/common/socket/check.rb +325 -0
- data/lib/common/socket/conf_modifier.rb +149 -0
- data/lib/common/socket/context.rb +55 -0
- data/lib/common/socket/data.rb +392 -0
- data/lib/common/socket/data_helper.rb +41 -0
- data/lib/common/socket/env.rb +317 -0
- data/lib/common/socket/inc.rb +24 -0
- data/lib/common/socket/log.rb +213 -0
- data/lib/common/socket/log4s.rb +58 -0
- data/lib/common/socket/log_helper.rb +332 -0
- data/lib/common/socket/my_sql.rb +77 -0
- data/lib/common/socket/net.rb +74 -0
- data/lib/common/socket/network.rb +115 -0
- data/lib/common/socket/rlib/conf_modifier.rb +130 -0
- data/lib/common/socket/rlib/data_helper.rb +33 -0
- data/lib/common/socket/rlib/log_helper.rb +303 -0
- data/lib/common/socket/rlib/process_helper.rb +91 -0
- data/lib/common/socket/stub.rb +276 -0
- data/lib/common/socket/util.rb +266 -0
- data/lib/patterns/inc.rb +10 -0
- data/lib/patterns/mc_base_pattern.rb +474 -0
- data/lib/patterns/some_pattern.rb +145 -0
- data/lib/super_test.rb +114 -0
- data/log/super_test.log +0 -0
- data/log/super_test.log.wf +0 -0
- data/test/cover_me.rb +6 -0
- data/tool/jenny +0 -0
- data/tool/mcsend/mcsend2 +0 -0
- data/tool/mcsend/mcsend2_shead +0 -0
- data/tool/mcserver/conf/mcserver.conf +77 -0
- data/tool/mcserver/conf/mcserverauthip +17 -0
- data/tool/mcserver/mcserver +0 -0
- data/tool/mcserver/mcserver_trans +0 -0
- data/tool/mysql +0 -0
- data/tool/net/mcsend/mcsend +0 -0
- data/tool/net/mcsend/mcsend_trans +0 -0
- data/tool/net/mcsend/nshead.data +7 -0
- data/tool/net/mcsend/res_nshead.data +7 -0
- data/tool/net/my_client/my_client +0 -0
- data/tool/net/tsclient/client.tcl +205 -0
- data/tool/others/kk +190 -0
- data/tool/others/rubyatp +42 -0
- data/tool/others/supertest_install.sh +34 -0
- data/tool/trip/idb +0 -0
- data/tool/ts-agent/nshead.bft +12 -0
- data/tool/ts-agent/server.conf +10 -0
- data/tool/ts-agent/server.tcl +376 -0
- metadata +275 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 33c413f8821f544f46c7c3de7bae634d02dad54d
|
4
|
+
data.tar.gz: a27d2da669de86b5d438d3d4aa868529e4ff719c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 68012dca01682ddbd8bc61065c74fee454ebde342261232461f0269baeac992c54b1c9109259522b4c65c2e7716e377928b73e79577d4f3d19410ec8c1942ae0
|
7
|
+
data.tar.gz: 9c855addb3b8b61040d0c28e43b2f497c92fa315123142150df885f30d5ffbbb62784b0186a553f540f6b034e1dcbf1bae7ff27257999f49167b4cd09c5bb39c
|
data/CHANGE.txt
ADDED
data/README.txt
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
=================================
|
2
|
+
===
|
3
|
+
=== 下载后的安装步骤:
|
4
|
+
=== 1. cd /path/to/super-test
|
5
|
+
=== 2. gem build super-test.gemspec
|
6
|
+
=== # 然后会在super-test目录下生成super-test.${version}.gem
|
7
|
+
=== 3. gem install super-test.${version}.gem
|
8
|
+
=== 大功告成!
|
9
|
+
=== 可以使用/Library/Ruby/Gems/2.0.0/gems/super-test-0.0.3/bin/kk -c hello在自定义的目录下创建一个自动化测试用例
|
10
|
+
===
|
11
|
+
===
|
12
|
+
=================================
|
13
|
+
|
data/bin/idb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# coding: utf-8
|
3
|
+
#
|
4
|
+
# Author:: zhengmao.yzm
|
5
|
+
# Date:: 2016-05-23
|
6
|
+
#
|
7
|
+
|
8
|
+
# trip tool的根目录
|
9
|
+
TRIP_TOOL = "#{File.dirname(File.dirname(File.expand_path(__FILE__)))}"
|
10
|
+
|
11
|
+
# 传递参数给真 idb
|
12
|
+
params = ''
|
13
|
+
ARGV.each do |item|
|
14
|
+
params += item.to_s + ' '
|
15
|
+
end
|
16
|
+
|
17
|
+
cmd = "#{TRIP_TOOL}/tool/trip/idb " + params
|
18
|
+
|
19
|
+
system cmd
|
data/bin/ii
ADDED
@@ -0,0 +1,113 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# coding: utf-8
|
3
|
+
#
|
4
|
+
# Author:: leiming.lm
|
5
|
+
# Date:: 2016-02-02
|
6
|
+
#
|
7
|
+
|
8
|
+
require 'super_test'
|
9
|
+
require 'irb'
|
10
|
+
require "wirble"
|
11
|
+
|
12
|
+
Wirble.init
|
13
|
+
Wirble.colorize
|
14
|
+
|
15
|
+
|
16
|
+
class SuperIrb
|
17
|
+
|
18
|
+
# 将系统的和用户自定义的Helper,只要是以Helper结尾的Module,全都include进来
|
19
|
+
def initialize(*params)
|
20
|
+
Object.constants.each do |k|
|
21
|
+
if k.to_s =~ /^.+(Helper|Pattern|Action)$/
|
22
|
+
m = Object.const_get(k)
|
23
|
+
self.extend(m) if m.instance_of? Module
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
# 用户仓库
|
28
|
+
@user_house = UserHouse.get_instance
|
29
|
+
# 字符仓库
|
30
|
+
#@char_house = CharHouse.get_instance
|
31
|
+
# 初始化cookie池
|
32
|
+
@cookies = {}
|
33
|
+
# 初始化referer为空
|
34
|
+
@referer = ""
|
35
|
+
# 初始化用户为空
|
36
|
+
@user = nil
|
37
|
+
# 是否做压力,压力的情况下会屏蔽掉所有assert
|
38
|
+
@is_press = false
|
39
|
+
# 默认是要进行转码的
|
40
|
+
@dont_encode = false
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
module IRB
|
46
|
+
|
47
|
+
def IRB.parse_opts
|
48
|
+
# Don't touch ARGV, which belongs to the app which called this module.
|
49
|
+
@CONF[:USE_READLINE] = false ##默认不适用readline,以避免mac上ii无法输入中文的问题
|
50
|
+
|
51
|
+
while ii_arg = $*.shift
|
52
|
+
case ii_arg
|
53
|
+
when "--readline"
|
54
|
+
@CONF[:USE_READLINE] = true ## 如果用户自己安装了readline,可以通过此方式启动
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def IRB.start_session(*args)
|
60
|
+
unless $irb
|
61
|
+
IRB.setup nil
|
62
|
+
## maybe set some opts here, as in parse_opts in irb/init.rb?
|
63
|
+
end
|
64
|
+
workspace = WorkSpace.new(*args)
|
65
|
+
|
66
|
+
if @CONF[:SCRIPT] ## normally, set by parse_opts
|
67
|
+
$irb = Irb.new(workspace, @CONF[:SCRIPT])
|
68
|
+
else
|
69
|
+
$irb = Irb.new(workspace)
|
70
|
+
end
|
71
|
+
|
72
|
+
@CONF[:IRB_RC].call($irb.context) if @CONF[:IRB_RC]
|
73
|
+
@CONF[:MAIN_CONTEXT] = $irb.context
|
74
|
+
|
75
|
+
trap 'INT' do
|
76
|
+
$irb.signal_handle
|
77
|
+
end
|
78
|
+
|
79
|
+
custom_configuration if defined?(IRB.custom_configuration)
|
80
|
+
|
81
|
+
begin
|
82
|
+
catch(:IRB_EXIT) do
|
83
|
+
$irb.eval_input
|
84
|
+
end
|
85
|
+
ensure
|
86
|
+
ii_at_exit
|
87
|
+
end
|
88
|
+
print "\n"
|
89
|
+
end
|
90
|
+
|
91
|
+
# Calls each event hook of IRB.conf[:AT_EXIT] when the current session quits.
|
92
|
+
def IRB.ii_at_exit
|
93
|
+
puts ">> appium driver quit."
|
94
|
+
$appium_driver.driver_quit unless $appium_driver.nil?
|
95
|
+
#@CONF[:AT_EXIT].each{ |hook| hook.call }
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
99
|
+
|
100
|
+
class Object
|
101
|
+
include IRB::ExtendCommandBundle # so that Marshal.dump works
|
102
|
+
end
|
103
|
+
|
104
|
+
|
105
|
+
# 初始化
|
106
|
+
si = SuperIrb.new
|
107
|
+
prompt = "SuperIrb>"
|
108
|
+
|
109
|
+
# 开始
|
110
|
+
puts "================================================"
|
111
|
+
puts " Welcome to SuperTest's irb ! @_@"
|
112
|
+
puts "================================================"
|
113
|
+
IRB.start_session(si)
|
data/bin/istart_mock
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# coding: utf-8
|
3
|
+
#
|
4
|
+
# Author:: zhengmao.yzm
|
5
|
+
# Date:: 2016-05-23
|
6
|
+
#
|
7
|
+
|
8
|
+
require 'super_test'
|
9
|
+
include MockHelper
|
10
|
+
mock_args = $*
|
11
|
+
|
12
|
+
if mock_args.size != 1 && mock_args.size != 2
|
13
|
+
puts "args number is error! \n\nUSAGE: \nistart_mock your/mock/file [api_name]\tapi_name为可选参数"
|
14
|
+
exit(1)
|
15
|
+
end
|
16
|
+
if mock_args.size == 1
|
17
|
+
mock_arg = mock_args.shift
|
18
|
+
file_name = nil
|
19
|
+
else
|
20
|
+
mock_arg = mock_args.shift
|
21
|
+
file_name = mock_args.shift
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
|
26
|
+
begin
|
27
|
+
if file_name.nil?
|
28
|
+
istart_mock(mock_arg)
|
29
|
+
else
|
30
|
+
istart_mock(mock_arg, file_name)
|
31
|
+
end
|
32
|
+
|
33
|
+
puts "success"
|
34
|
+
rescue
|
35
|
+
raise Exception, "error:#{$!} at:#{$@}"
|
36
|
+
end
|
data/bin/istop_mock
ADDED
data/bin/kk
ADDED
@@ -0,0 +1,181 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# coding: utf-8
|
3
|
+
#
|
4
|
+
# Author:: leiming.lm
|
5
|
+
# Date:: 2016-02-02
|
6
|
+
#
|
7
|
+
|
8
|
+
def gen_case(filename,casename)
|
9
|
+
text = %Q|#!/usr/bin/env ruby
|
10
|
+
# coding: utf-8
|
11
|
+
#
|
12
|
+
# Author:: #{ENV['USER']}
|
13
|
+
# Date:: #{Time.now}
|
14
|
+
#
|
15
|
+
# App::
|
16
|
+
# Version::
|
17
|
+
#
|
18
|
+
$CASE_PATH = __FILE__
|
19
|
+
###########################################
|
20
|
+
require 'super_test'
|
21
|
+
|
22
|
+
|
23
|
+
# {case描述}
|
24
|
+
class #{casename} < SuperTest
|
25
|
+
|
26
|
+
# {测试点}
|
27
|
+
def test_me
|
28
|
+
#TODO
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
|
33
|
+
File.open(filename,"w") {|file| file.write(text) }
|
34
|
+
system("vim #{filename} +16")
|
35
|
+
end
|
36
|
+
|
37
|
+
# 生成helper
|
38
|
+
def gen_helper(filename,hname)
|
39
|
+
text = %Q|#!/usr/bin/env ruby
|
40
|
+
# coding: utf-8
|
41
|
+
#
|
42
|
+
# Author:: #{ENV['USER']}
|
43
|
+
# Date:: #{Time.now}
|
44
|
+
###########################################
|
45
|
+
|
46
|
+
|
47
|
+
|
48
|
+
# {helper描述}
|
49
|
+
module #{hname}
|
50
|
+
|
51
|
+
# {具体功能描述及示例}
|
52
|
+
def my_func(param)
|
53
|
+
#TODO
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
|
|
58
|
+
File.open(filename,"w") {|file| file.write(text) }
|
59
|
+
system("vim #{filename} +15")
|
60
|
+
end
|
61
|
+
|
62
|
+
# 生成pattern
|
63
|
+
def gen_pattern(filename,pname)
|
64
|
+
text = %Q|#!/usr/bin/env ruby
|
65
|
+
# coding: utf-8
|
66
|
+
#
|
67
|
+
# Author:: #{ENV['USER']}
|
68
|
+
# Date:: #{Time.now}
|
69
|
+
###########################################
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
# {pattern描述}
|
74
|
+
module #{pname}
|
75
|
+
|
76
|
+
# {具体模式描述及示例}
|
77
|
+
def my_pattern(param)
|
78
|
+
#TODO
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
|
|
83
|
+
File.open(filename,"w") {|file| file.write(text) }
|
84
|
+
system("vim #{filename} +15")
|
85
|
+
end
|
86
|
+
|
87
|
+
# 生成action
|
88
|
+
def gen_action(filename,aname)
|
89
|
+
text = %Q|#!/usr/bin/env ruby
|
90
|
+
# coding: utf-8
|
91
|
+
#
|
92
|
+
# Author:: #{ENV['USER']}
|
93
|
+
# Date:: #{Time.now}
|
94
|
+
###########################################
|
95
|
+
|
96
|
+
|
97
|
+
|
98
|
+
# {action描述}
|
99
|
+
module #{aname}
|
100
|
+
|
101
|
+
# {具体行为描述及示例}
|
102
|
+
def just_do_it(user)
|
103
|
+
#TODO
|
104
|
+
end
|
105
|
+
|
106
|
+
end
|
107
|
+
|
|
108
|
+
File.open(filename,"w") {|file| file.write(text) }
|
109
|
+
system("vim #{filename} +15")
|
110
|
+
end
|
111
|
+
|
112
|
+
def usage
|
113
|
+
print "KK
|
114
|
+
|
115
|
+
NAME
|
116
|
+
kk - 取名kk是因为输入起来很简单 : )
|
117
|
+
|
118
|
+
SYNOPSIS
|
119
|
+
kk [FILE]
|
120
|
+
|
121
|
+
DESCRIPTION
|
122
|
+
kk a_case
|
123
|
+
后面跟着文件名将生成自动化case模板
|
124
|
+
case名称规范: {case含义备注字段}_{文本case的kelude_id}.rb (如: alitrip_home_125698.rb)
|
125
|
+
kk an_action
|
126
|
+
后面跟着文件名将生成action模板
|
127
|
+
action名称规范: {action名}_action.rb (如: alitrip_home_action.rb)
|
128
|
+
action名称要能准确概括该action文件下的所有关键字的共同属性,例如alitrip_home_action.rb中都应是旅客首页中用到的关键字
|
129
|
+
kk a_helper
|
130
|
+
后面跟着文件名将生成helper模板
|
131
|
+
helper名称规范: {helper名}_helper.rb (如: appium_helper.rb, log_helper.rb)
|
132
|
+
helper名称要能准确概括该helper的物理含义,例如appium_helper.rb是appium在supertest中的一种存在形式,其中封装了appium提供的关键字
|
133
|
+
kk a_pattern
|
134
|
+
后面跟着文件名将生产pattern模板
|
135
|
+
pattern名称规范: {pattern名}_pattern.rb (如: login_pattern.rb)
|
136
|
+
pattern名称要能准确概括该pattern文件下的pattern公共含义,例如login_pattern.rb中都应是涉及登陆相关的pattern
|
137
|
+
-h, --help
|
138
|
+
帮助文档
|
139
|
+
|
140
|
+
AUTHOR
|
141
|
+
kk
|
142
|
+
|
143
|
+
SEE ALSO
|
144
|
+
http://work.taobao.net/projects/tripclient_automation2
|
145
|
+
|
146
|
+
kk (alitriputils) 1.0.1
|
147
|
+
"
|
148
|
+
end
|
149
|
+
|
150
|
+
# 解析参数
|
151
|
+
if ARGV.size == 0 or ARGV[0].start_with?("-")
|
152
|
+
usage
|
153
|
+
else
|
154
|
+
name = ARGV[0].downcase
|
155
|
+
name = name.end_with?(".rb") ? name[0...-3] : name
|
156
|
+
filename = name+".rb"
|
157
|
+
casename = name.split('_').reduce(""){|sum,n| sum+n.capitalize}
|
158
|
+
|
159
|
+
if File.exist? filename
|
160
|
+
print "#{filename} 已经存在了,是否替换掉? [y/n]"
|
161
|
+
ans = STDIN.gets
|
162
|
+
if ans.rstrip != "y"
|
163
|
+
puts "退出咯!!"
|
164
|
+
exit
|
165
|
+
end
|
166
|
+
end
|
167
|
+
type = name.split('_')[-1]
|
168
|
+
case type
|
169
|
+
when "pipe"
|
170
|
+
gen_pipe filename,casename
|
171
|
+
when "action"
|
172
|
+
gen_action filename,casename
|
173
|
+
when "helper"
|
174
|
+
gen_helper filename,casename
|
175
|
+
when "pattern"
|
176
|
+
gen_pattern filename,casename
|
177
|
+
else
|
178
|
+
gen_case filename,casename
|
179
|
+
end
|
180
|
+
end
|
181
|
+
|
data/bin/rubyatp
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# coding: utf-8
|
3
|
+
#
|
4
|
+
# Author:: liqiang01
|
5
|
+
# Date:: 2009-8-31 20:50:10
|
6
|
+
|
7
|
+
=begin
|
8
|
+
|
9
|
+
使用atp调用supertest case的adapter
|
10
|
+
atp发起执行字段为:
|
11
|
+
rubyatp #{@this.id}
|
12
|
+
|
13
|
+
=end
|
14
|
+
|
15
|
+
def run_case line
|
16
|
+
casenames = Dir.glob("#{line}/**/*_#{ARGV[0]}.rb")
|
17
|
+
puts "Got case"
|
18
|
+
if ( casenames.length == 0 )
|
19
|
+
puts "Case Not found"
|
20
|
+
else
|
21
|
+
puts casenames
|
22
|
+
puts "Run case"
|
23
|
+
casenames.each{|casei|
|
24
|
+
puts "Runing: #{casei}"
|
25
|
+
system( "source ~/.bash_profile; ruby #{casei}" )
|
26
|
+
}
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# get case path from env param RUBYLIB
|
31
|
+
dir = `source ~/.bash_profile; echo $RUBYLIB`.chop!
|
32
|
+
libs = dir.split(":")
|
33
|
+
libs.each{ |line|
|
34
|
+
if(! (line =~ /super-test/) )
|
35
|
+
line.gsub!(/lib/, "case")
|
36
|
+
run_case "#{line}/module"
|
37
|
+
run_case "#{line}/system"
|
38
|
+
end
|
39
|
+
}
|
40
|
+
|
41
|
+
|
42
|
+
|