addproject
This commit is contained in:
68
base_framework/platform_tools/Jenkins/jenkins_api.py
Normal file
68
base_framework/platform_tools/Jenkins/jenkins_api.py
Normal file
@@ -0,0 +1,68 @@
|
||||
# coding: utf-8
|
||||
from base_framework.public_tools.selenium_api import SeleniumWebUI
|
||||
import time
|
||||
|
||||
|
||||
class JenkinsAPI(SeleniumWebUI):
|
||||
def __init__(self):
|
||||
SeleniumWebUI.__init__(self)
|
||||
self.project_info = {}
|
||||
|
||||
def jenkins_login(self, u_name=None, u_pwd=None):
|
||||
""" 登陆jenkins """
|
||||
if not u_name:
|
||||
u_name = "admin"
|
||||
u_pwd = "admin"
|
||||
login_url = "http://39.170.26.156:8256/jenkins/login?from=%2Fjenkins%2F"
|
||||
self.web_open_url(url=login_url)
|
||||
self.web_send_keys(locator="//*[@id=\"j_username\"]", text=u_name)
|
||||
self.web_send_keys(locator="//*[@name=\"j_password\"]", text=u_pwd)
|
||||
self.web_click_element(locator="//*[@name=\"Submit\"]")
|
||||
time.sleep(1) # 切换到构建墙
|
||||
self.web_click_element(locator="//*[text()='1-用户产品组']")
|
||||
time.sleep(1) # 显示用例数量
|
||||
self.web_click_element(locator="//*[@title=\"Configure Build Monitor Settings\"]")
|
||||
time.sleep(1)
|
||||
self.web_click_checkbox(locator="//*[@id=\"settings-show-test-result\"]")
|
||||
self.web_click_checkbox(locator="//button[text()=\"Done\"]")
|
||||
|
||||
def jenkins_find_all_case_number(self):
|
||||
""" 从构建墙上读取用例数量 """
|
||||
elements = self.web_find_elements(locator="//li[@ng-repeat=\"project in jobs track by project.hashCode\"]")
|
||||
for element in elements:
|
||||
item = element.text.split('\n')
|
||||
case_number = item[1].split('/')
|
||||
self.project_info[item[0]] = case_number[1]
|
||||
|
||||
def jenkins_edit_project_config(self, **kwargs):
|
||||
""" 编辑工程配置信息 """
|
||||
for jp in self.project_info:
|
||||
case_number = int(self.project_info[jp])
|
||||
if jp == "TO-IT":
|
||||
jp = "TO-IT-TEST"
|
||||
elif jp == "TO-SMOKING":
|
||||
jp = "TO-SMOKING_NEW"
|
||||
project_url = "http://10.250.200.1:8080/jenkins/view/1-%E7%94%A8%E6%88%B7%E4%BA%A7%E5%93%81%E7%BB%84/" \
|
||||
"job/{}/configure".format(jp)
|
||||
if "SMOKING" in jp or "-ST" in jp:
|
||||
threshold = 99.999999 # 冒烟和ST用例需全部构建成功
|
||||
else:
|
||||
threshold = round((1-5.5/case_number)*100, 4) # 阈值
|
||||
self.web_open_url(url=project_url) # 进入设置页面
|
||||
self.web_send_keys(locator="//input[@name=\"_.unstableThreshold\"]", text=str(threshold))
|
||||
self.web_click_checkbox(locator="//button[text()=\"保存\"]")
|
||||
print("{}设置阈值{}完毕....".format(jp, threshold))
|
||||
time.sleep(1)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
ja = JenkinsAPI()
|
||||
ja.jenkins_login()
|
||||
time.sleep(3)
|
||||
ja.jenkins_find_all_case_number()
|
||||
ja.jenkins_edit_project_config()
|
||||
time.sleep(3)
|
||||
ja.web_close_browser()
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user