-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstart_base_service.py
More file actions
162 lines (152 loc) · 6.32 KB
/
Copy pathstart_base_service.py
File metadata and controls
162 lines (152 loc) · 6.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
# -*- coding: UTF-8 -*-
# by gzq
# date :2017/9/22 0022 19:34
import time
import re
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
# 自动登陆jenkins 点击指定视图下的打包任务
from selenium import webdriver
# 自动执行jenkins 点击指定视图中job
web_site = "http://192.168.0.223:8080/view/%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%834.0-AUTO/"
web_login = "http://192.168.0.223:8080/login?from=%2F"
# 驱动游览器
# browser = webdriver.Firefox()
browser = webdriver.Chrome()
# 正则匹配试图中的job 名字
re_job_id = re.compile(r'<tr id="(job_.*?)" class="',re.M)
# 黑名单任务不执行
backJobDict = {"备份测试环境V4.0.0-AUTO":
[
"job_备份测试环境-OSS-COMMON-V4.0.0-AUTO",
"job_备份测试环境-MODEL-ANNOTATION-V4.0.0-AUTO",
"job_备份测试环境-OSS-XCODE-V4.0.0-AUTO",
"job_备份测试环境-APP-H5-XCODE-V4.0.0-AUTO",
"job_备份测试环境-API-XCODE-V4.0.0-AUTO",
"job_备份测试环境-APP-H5-OSS-XCODE-V4.0.0-AUTO",
"job_备份测试环境-MODEL-ANNOTATION-V4.0.0-AUTO",
"job_备份测试环境-UPLOAD-V4.0.0-AUTO",
"job_备份测试环境-UPLOAD-V4.0.0-AUTO-docker",
],
"测试环境4.0-AUTO":
[
"job_测试环境-OSS-COMMON-V4.0.0-AUTO",
# "job_测试环境-OSS-TMS-OPEN-V4.0.0-AUTO",
# "job_测试环境-OSS-TMS-H5-V4.0.0-AUTO",
# "job_测试环境-OSS-STORE-V4.0.0-AUTO",
# "job_测试环境-API-SMS-V4.0.0-AUTO",
# "job_测试环境-API-POS-BILL-V4.0.0-AUTO",
# "job_测试环境-API-POS-V4.0.0-AUTO",
# "job_测试环境-OSS-POS-V4.0.0-AUTO",
# "job_测试环境-APP-H5-OSS-POS-V4.0.0-AUTO",
"job_测试环境-MODEL-ANNOTATION-V4.0.0-AUTO",
"job_测试环境-OSS-XCODE-V4.0.0-AUTO",
"job_测试环境-APP-H5-XCODE-V4.0.0-AUTO",
"job_测试环境-API-XCODE-V4.0.0-AUTO",
"job_测试环境-APP-H5-OSS-XCODE-V4.0.0-AUTO",
"job_测试环境-MODEL-ANNOTATION-V4.0.0-AUT",
"job_测试环境-Restart_ALLService-V4.0.0-AUTO",
"job_restart-测试环境(IP225)- 服务名--服务所在服务器",
"job_restart-测试环境(ip221)- 服务名--服务名所在服务器",
"job_测试环境-UPLOAD-V4.0.0-AUTO",
# "job_测试环境-OSS-SMS-V4.0.0-AUTO",
],
"开发环境4.0-AUTO":[
"job_开发环境-OSS-COMMON-V4.0.0-AUTO",
"job_开发环境-MODEL-ANNOTATION-V4.0.0-AUTO",
"job_开发环境-OSS-XCODE-V4.0.0-AUTO",
"job_开发环境-APP-H5-XCODE-V4.0.0-AUTO",
"job_开发环境-API-XCODE-V4.0.0-AUTO",
"job_开发环境-APP-H5-OSS-XCODE-V4.0.0-AUTO",
"job_开发环境-MODEL-ANNOTATION-V4.0.0-AUT",
"job_开发环境-Restart_ALLService-V4.0.0-AUTO",
"job_restart-开发环境- 服务名--服务名所在服务器",
"job_开发环境-UPLOAD-V4.0.0-AUTO",
"job_开发环境-API-XCODE-V4.0.0-AUTO",
"job_开发环境-job-console-V4.0.0-AUTO"
],
"生产环境-V4.0.0-AUTO":[
"job_生产环境-JOB-V4.0.0-AUTO",
"job_生产环境-UPLOAD-V4.0.0-AUTO",
"job_生产环境-ALL-Service-V4.0.0-AUTO",
"job_生产环境-APP-H5-SHOP-V4.0.0-AUTO",
"job_生产环境-OSS-XCODE-V4.0.0-AUTO",
"job_生产环境-APP-H5-OSS-XCODE-V4.0.0-AUTO",
"job_生产环境-APP-H5-XCODE-V4.0.0-AUTO",
"job_生产环境-API-XCODE-V4.0.0-AUTO",
"job_生产环境-OSS-POS-V4.0.0-AUTO",
"job_生产环境-API-POS-V4.0.0-AUTO",
"job_生产环境-APP-H5-OSS-POS-V4.0.0-AUTO",
"job_生产环境-API-POS-BILL-V4.0.0-AUTO",
"job_restart-正式环境(ip127)- 服务名--服务名所在服务器",
"job_restart-正式环境(ip85)- 服务名--服务名所在服务器",
],
"生产环境-V4.0.0":[
"job_生产环境-JOB-V4.0.0",
"job_生产环境-UPLOAD-V4.0.0",
"job_生产环境-ALL-Service-V3.0.0-AUTO",
"job_生产环境-APP-H5-SHOP-V4.0.0",
"job_生产环境-APP-H5-OSS-XCODE-V4.0.0",
"job_生产环境-OSS-XCODE-V4.0.0",
"job_生产环境-APP-H5-OSS-XCODE-V4.0.0",
"job_生产环境-APP-H5-XCODE-V4.0.0",
"job_生产环境-API-XCODE-V4.0.0",
"job_生产环境-OSS-POS-V4.0.0",
"job_生产环境-API-POS-V4.0.0",
"job_生产环境-APP-H5-OSS-POS-V4.0.0",
"job_生产环境-API-POS-BILL-V4.0.0",
"job_生产环境-APK-UPLOAD-V4.0.0-AUTO"
],
}
def login(username,passwd):
#登陆函数
browser.get(web_login)
time.sleep(2)
browser.find_element_by_id("j_username").clear()
browser.find_element_by_id("j_username").send_keys(username)
browser.find_element_by_name("j_password").clear()
browser.find_element_by_name("j_password").send_keys(passwd)
browser.find_element_by_id("yui-gen1-button").click()
def click_job(jobViewName):
# 切换job试图
browser.find_element_by_link_text(jobViewName).click()
# 获取网页内容
content = browser.page_source
job_list_tmp = re_job_id.findall(content)
job_list =[]
for i in job_list_tmp:
job_name = i.encode("utf-8")
backJoblist = backJobDict[jobViewName]
if job_name not in backJoblist:
job = '//*[@id="%s"]/td[7]/a/img' %job_name
browser.find_element_by_xpath(job).click()
time.sleep(5)
print job_name
if __name__ == "__main__":
username = "guozhiquan"
passwd = "123456"
login(username,passwd)
tag = sys.argv[1]
if tag == "dev":
click_job("开发环境4.0-AUTO")
browser.quit()
sys.exit()
elif tag == "test":
click_job("测试环境4.0-AUTO")
browser.quit()
sys.exit()
elif tag == "bktest":
click_job("备份测试环境V4.0.0-AUTO")
browser.quit()
sys.exit()
elif tag =="office":
click_job("生产环境-V4.0.0-AUTO")
browser.quit()
sys.exit()
elif tag =="office-upload":
click_job("生产环境-V4.0.0")
browser.quit()
sys.exit()
else:
pass