python小程序代码50 到100行-Python 写了个小程序,耗时一天,结果才100多行

from selenium importwebdriverimportselenium.webdriver.support.ui as uifrom selenium.webdriver.common.by importByfrom selenium.webdriver.support.ui importWebDriverWaitfrom selenium.common.exceptions importNoSuchElementException,WebDriverExceptionimportselenium.webdriver.support.expected_conditions as ECimporttimefrom selenium.webdriver.chrome.options importOptionsimportioimportosimportreimporturllib2from datetime importdatetime

projectList=['*','**']

serverURL='****'userProfile='C:/Users/***a'consoleText='consoleText'logPath='**'

defwrite_file(data,fileName):

file_name= logPath+fileName+r'.txt'append_write= 'a'

ifos.path.exists(file_name):

append_write= 'w'f=open(file_name, append_write)

f.writelines(data)

f.close()returnfile_namedefget_latest_version(driver,projectList,serverURL):

version=[]for i inprojectList:### get latest version ID. Such as 31,32

url = serverURL+str(i)

driver.get(url)

click_submit(driver)

attr= driver.find_elements_by_css_selector("div.build-icon>a")[0].get_attribute("href")

buildId= attr.split('/')[-2]### get log content with encoding utf-8

url = url+r'/'+buildId+r'/'+consoleText

driver.get(url)

time.sleep(2)

content= driver.page_source.encode("utf-8")### write file to local, named with like rhel-buildId

### list format: os, logPath(local),buildId

version.append([i,write_file(content,i+'#'+buildId),buildId])returnversiondefclick_submit(driver):if len(driver.find_elements_by_css_selector("input[name='j_password']")) >0:

driver.find_element_by_css_selector("span[name='Submit'] button").click();defget_test_summary(file_obj):

isSummary=False

result=[]for line infile_obj:if notisSummary:if 'Test Summary' inline:

isSummary=Trueelif 'End of Summary' inline:break

else:

result.append(line)returnresultdefget_common_issues(list1,list2):

common_issues=[]

result= [l for l in list1 if l in list2 and 'Failed: 0' not inl]for ele inresult:if ele != ' ' and ele != ' ':

common_issues.append(ele)printelereturncommon_issuesdefget_server_log_path(file_obj):for line infile_obj:if 'GQL Log is located at' inline:return line.split()[-1]defget_summary_list(version):

summary_list=[]for os_ele inversion:

file_obj= open(os_ele[1],'r')

summary_list.append(get_test_summary(file_obj))

os_ele.append(get_server_log_path(file_obj))

file_obj.close()returnsummary_listdefwrite_summary_log(summary_log_name, common_issues,baseUrl):for com_is incommon_issues:

com_is= com_is.split(':')[0]try:

response= urllib2.urlopen(baseUrl+r'/'+com_is)

case_log_path= write_file(response,com_is+datetime.today().strftime('%Y-%m-%d'))#print 'case log path:',case_log_path

except:continuef= open(case_log_path,'r')

data=f.read()

f.close()

match= re.findall(r'(?:(?!Test Case: ).)*Test Case: Fail',data,re.DOTALL)for i inmatch:ifos.path.exists(summary_log_name):

append_write= 'a'

else:

append_write= 'w'f=open(summary_log_name,append_write)

f.writelines('#########'+com_is+'#########')

f.write(' ')if i.startswith('est Case:'):

i= i[i.find(' '):]for parsed in [line for line in i.split(' ') if line.strip() !='']:

f.writelines(parsed)

f.write(' ')

f.close()print 'Summary file put in', summary_log_name

options=webdriver.ChromeOptions()

options.add_argument('--user-data-dir='+userProfile)

driver= webdriver.Chrome(executable_path=r'C:/Python27/chromedriver.exe',chrome_options=options)

version=get_latest_version(driver,projectList,serverURL)

driver.quit()

summary_list=get_summary_list(version)

common_issues= get_common_issues(summary_list[0],summary_list[1])

baseUrl= version[0][-1]printbaseUrl

summary_log_name= logPath + datetime.today().strftime('%Y-%m-%d') + r'.txt'

ifos.path.exists(summary_log_name):

os.remove(summary_log_name)

write_summary_log(summary_log_name, common_issues,baseUrl)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值