def __init__(self, path, iskey, parent=None): super(MyListModel, self).__init__(parent) if iskey: self._data = readconfig.ReadConfig("%s" % path).showkey() else: self._data = readconfig.ReadConfig("%s" % path).showSections() pass
def getScriptDetail(self, index): global sname sname = MyListModel('./conf/script_config.ini', 0)._data[index.row()] arguExample = readconfig.ReadConfig("./conf/script_config.ini").get( "%s" % sname, 'argument') description = readconfig.ReadConfig("./conf/script_config.ini").get( "%s" % sname, 'description') self.argumentText.setText(arguExample) self.descriptionText.setText(description)
def pushButton_clicked(self): name = self.textEdit.toPlainText() name = str(name) data = self.textEdit_2.toPlainText() data = str(data) db = readconfig.ReadConfig('./conf/db_config.ini') db.set('baseconf', name, data) self.close()
def connDB(): # 连接数据库 lg = logger.config_logger('connDB') lg.info('开始连接数据库') rc = readconfig.ReadConfig() host = rc.get_mysql('host') port = int(rc.get_mysql('port')) user = rc.get_mysql('user') password = rc.get_mysql('password') database = rc.get_mysql('db') try: conn = pymysql.connect(host=host, port=port, user=user, password=password, db=database, charset='utf8') lg.info('已成功连接数据库') except Exception as e: print(e) lg.info('数据库访问失败') cur = conn.cursor() return (conn, cur)
''' import os,sys import shutil import re import requests import csv import time import random from pandas import DataFrame,Series import pandas as pd import readconfig import appiumlog rc = readconfig.ReadConfig() log = appiumlog.Clog() log.build_start_line() #设置安卓渠道版本所在目录 version_catalogue = rc.getOther('chanel_path') #version_catalogue = str(raw_input(" \n -> Please input App Channel catalogue: ")) #设置ApkTool的目录 ApkTool = rc.getOther('apkTool_path') now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) #apktool.jar地址 apktool_download_url = 'https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.1.0.jar' #存放测试结果 script_dir = os.getcwd()
import common.HTMLTestRunner as HTMLTestRunner import getpathinfo import unittest import readconfig from common.configemail import SendEmail from datetime import datetime from logging_method import LoggingMethod # from apscheduler.schedulers.blocking import BlockingScheduler # import pythoncom # import common.Log send_mail = SendEmail() path = getpathinfo.get_path() report_path = os.path.join(path, 'result') on_off = readconfig.ReadConfig().get_email('on_off') logger = LoggingMethod(__name__).getlogger() class AllTest: # 定义一个类AllTest def __init__(self): # 初始化一些参数和数据 global resultName now = datetime.now().strftime('%Y-%m-%d_%H_%M_%S') resultName = str(report_path + '\\' + now + '_report.html') # resultName = str(os.path.join(report_path,"report.html")) self.caseListFile = os.path.join(path, "caselist.txt") # 配置执行哪些测试文件的配置文件路径 self.caseFile = os.path.join(path, "testCase") # 真正的测试断言文件路径 self.caseList = [] logger.info("resultNmae", resultName) logger.info("caseListFile", self.caseListFile)
def main(): # threadnum = 10 # screenshotdir = 'screenshot' configread = readconfig.ReadConfig() # 实例化读取配置文件class zoomeyeusername = configread.get_content("Zoomeye", "zoomeyeusername1") zoomeyepassword = configread.get_content("Zoomeye", "zoomeyepassword1") zoomeyeaccesstoken = searchfunc.zoomeyesearch().gettoken(zoomeyeusername, zoomeyepassword) # shodanapikey = configread.get_content("Shodan", "shodanapikey1") fofaemail = configread.get_content("Fofa", "fofausername1") fofaapikey = configread.get_content("Fofa", "fofaapikey1") mongo = basefunc.Mongo('172.16.20.108', 27017) # 实例化mongodb dataformat = basefunc.dataformat() with open('keyword.txt', 'r', encoding='utf-8') as keywordfile: # keywordfile读取 for keyword in keywordfile.readlines(): keyword = keyword.strip() # ##################################Zoomeye Search##################################### # ##################################数据存入mongodb##################################### # try: zoomeyesearch = searchfunc.zoomeyesearch() zoomeye_result = zoomeyesearch.zoomeyequery(zoomeyeaccesstoken, keyword, '1') if zoomeye_result[u'available'] == 0: print("######Zoomeye Can't find by %s!" % keyword) elif zoomeye_result[u'available'] <= 20: print("----------Zoomeye Find [ %s ] result of %s! ----------" % ( zoomeye_result[u'available'], keyword)) for site in zoomeye_result[u'matches']: sitejson, url, urlmd5 = dataformat.zoomeye_json_chuli(site, keyword) document_to = {'urlmd5': urlmd5} if list(mongo.search('scanresultdb', 'searchcollection', document_to)): print("@ ...") pass else: print('@@@@@@@ Zoomeye Find new ' + urlmd5) sitejson['screenshotkey'] = 'unshot' mongo.update('scanresultdb', 'searchcollection', document_to, sitejson) # basefunc.screenshot().get_site_pic(url, screenwidth, screenheight,zoomeyescreendir) elif zoomeye_result[u'available'] > 20: print("----------Zoomeye Find [ %s ] result of %s!----------" % ( zoomeye_result[u'available'], keyword)) available = int(zoomeye_result[u'available']) if available % 20 == 0: pages = available // 20 else: pages = (available // 20) + 1 pagesrange = pages + 1 for pageno in range(1, pagesrange): zoomeye_result = zoomeyesearch.zoomeyequery(zoomeyeaccesstoken, keyword, str(pageno)) for site in zoomeye_result[u'matches']: sitejson, url, urlmd5 = dataformat.zoomeye_json_chuli(site, keyword) document_to = {'urlmd5': urlmd5} if list(mongo.search('scanresultdb', 'searchcollection', document_to)): print("@ ...") pass else: print('Zoomeye Find new ' + urlmd5) sitejson['screenshotkey'] = 'unshot' mongo.update('scanresultdb', 'searchcollection', document_to, sitejson) # basefunc.screenshot().get_site_pic(url, screenwidth, screenheight,zoomeyescreendir) else: pass # except Exception as e: # print("Zoomeye error!!!!!!!!!!!!!!!!!!!") # print(e) ##################################Shodan Search##################################### ##################################数据存入mongodb##################################### try: shodansearch = searchfunc.shodansearch() shodan_count = shodansearch.shodancount(shodanapikey, keyword) if shodan_count == 0: print("######Shodan Can't find by %s!" % keyword) elif shodan_count > 0: print("----------Shodan Find [ %s ] result of %s!----------" % (shodan_count, keyword)) if shodan_count % 100 == 0: pages = shodan_count // 100 else: pages = (shodan_count // 100) + 1 pagesrange = pages + 1 for pageno in range(1, pagesrange): shodan_result = shodansearch.shodanquery(shodanapikey, keyword, str(pageno)) # conn = MongoClient('127.0.0.1', 27017) # db = conn.scanresultdb # 连接mydb数据库,没有则自动创建 # my_set = db.zoomeye # 使用test_set集合,没有则自动创建 for site in shodan_result[u'matches']: sitejson, url, urlmd5 = dataformat.shodan_json_chuli(site, keyword) document_to = {'urlmd5': urlmd5} if list(mongo.search('scanresultdb', 'searchcollection', document_to)): print("@ ...") pass else: print('@@@@@@@ Shodan Find new ' + urlmd5) sitejson['screenshotkey'] = 'unshot' mongo.update('scanresultdb', 'searchcollection', document_to, sitejson) except: print("Shodan error!!!!!!!!!!!!!!!!!!!") ##################################Fofa Search##################################### ##################################数据存入mongodb##################################### try: fofasearch = searchfunc.fofasearch() fofa_result = fofasearch.fofaquery(fofaemail, fofaapikey, keyword) for site in fofa_result.get(u'results'): sitejson, url, urlmd5 = dataformat.fofa_json_chuli(site, keyword) document_to = {'urlmd5': urlmd5} if list(mongo.search('scanresultdb', 'searchcollection', document_to)): print("@ ...") pass else: print('@@@@@@@ Fofa Find new ' + urlmd5) sitejson['screenshotkey'] = 'unshot' mongo.update('scanresultdb', 'searchcollection', document_to, sitejson) except Exception as e: print(e) print("Fofa error!!!!!!!!!!!!!!!!!!!") print('-' * 80)
import csv import codecs from common.table_model import table_mode import readconfig print("----------开始执行------------") localRead = readconfig.ReadConfig() table_re_path = localRead.get_address('table_re') file = codecs.open(table_re_path,'w','utf-8') print("获取内容中......") table_path = localRead.get_address('table') with codecs.open(table_path,'r','utf-8') as g: lines = len(g.readlines()) g.close() print("内容解析中......") with codecs.open(table_path,'r','utf-8') as f: reader = csv.reader(f) for i,rows in enumerate(reader): if i>0: col_name = rows[0] lab_name = rows[1] if i != lines-1: table_re = table_mode(col_name, lab_name) + ',' else: table_re = table_mode(col_name, lab_name) print("第"+str(i)+"行解析成功...") file.write(table_re)
def deleteProtoBuf_clicked(self): conf = readconfig.ReadConfig('./conf/db_config.ini') ret = conf.removeOption('baseconf', self.pname) if ret: lm = MyListModel('./conf/db_config.ini', 1) self.listView.setModel(lm)
import pymysql import readconfig from common.Log import MyLog as Log import common.readxml as readxml local_read_config = readconfig.ReadConfig() class MyDb: global host, port, user, password, db, config host = local_read_config.get_db('host') port = local_read_config.get_db('port') user = local_read_config.get_db('user') password = local_read_config.get_db('password') db = local_read_config.get_db('db_name') config = { 'host': str(host), 'port': int(port), 'user': user, 'password': password, 'db': db, } def __init__(self): log = Log.get_log() logger = log.get_logger() def connect_db(self): try: self.db = pymysql.connect(**config) self.cursor = self.db.cursor() except Exception as e:
import os import smtplib from email.mime.multipart import MIMEMultipart from email.mime.application import MIMEApplication from email.mime.text import MIMEText from datetime import datetime import threading import readconfig as readConfig from log import MyLog import zipfile import glob import time localReadConfig = readConfig.ReadConfig() class Email: def __init__(self): global host, user, password, port, sender, title, content host = localReadConfig.get_email("mail_host") user = localReadConfig.get_email("mail_user") password = localReadConfig.get_email("mail_pass") port = localReadConfig.get_email("mail_port") sender = localReadConfig.get_email("sender") title = localReadConfig.get_email("subject") content = localReadConfig.get_email( 'content') + "\n北大口腔软件接口自动化测试用例运行完毕,测试报告请查阅!".replace('"', "") self.value = localReadConfig.get_email("receiver") self.receiver = [] # get receiver list for n in str(self.value).split("/"):
def social(): localRead = readconfig.ReadConfig() path = localRead.get_address('CASE') #获取案例所在的table,以及各项所在的列 table_n = readExcelDataByIndex(path, 3)[0] ID = getColumnIndex(table_n, 'ID') DESCRIBE = getColumnIndex(table_n, 'DESCRIBE') CASE_ID = getColumnIndex(table_n, 'CASE_ID') IS_RUN = getColumnIndex(table_n, 'IS_RUN') ENV = getColumnIndex(table_n, 'ENV') notify_url = getColumnIndex(table_n, 'notify_url') user_id = getColumnIndex(table_n, 'user_id') area_name = getColumnIndex(table_n, 'area_name') account = getColumnIndex(table_n, 'account') password = getColumnIndex(table_n, 'password') login_type = getColumnIndex(table_n, 'login_type') id_card = getColumnIndex(table_n, 'id_card') mobile = getColumnIndex(table_n, 'mobile') real_name = getColumnIndex(table_n, 'real_name') sub_area = getColumnIndex(table_n, 'sub_area') corp_account = getColumnIndex(table_n, 'corp_account') corp_name = getColumnIndex(table_n, 'corp_name') origin = getColumnIndex(table_n, 'origin') ip = getColumnIndex(table_n, 'ip') URL = getColumnIndex(table_n, 'URL') #解析案例 data = xlrd.open_workbook(path) data_sheet_env = data.sheets()[0] #记录生成的tradeno trade_NO = [] rownum = 0 rownum1 = 0 data_sheet = data.sheets()[3] for rown in range(data_sheet.nrows - 1): rows = data_sheet.row_values(rown + 1) out = 0 #判断需要执行才进行以下操作 if rows[IS_RUN] == 1: #获取环境变量信息 if rows[ENV] == 'TEST': row_test = data_sheet_env.row_values(1) env = row_test[1] memberId_v = row_test[2] member_id_v = row_test[2] terminalId_v = row_test[3] terminal_id_v = row_test[3] key_pfx_v = row_test[4] key_password_v = row_test[5] elif rows[ENV] == 'PRO': row_test = data_sheet_env.row_values(2) env = row_test[1] memberId_v = row_test[2] member_id_v = row_test[2] terminalId_v = row_test[3] terminal_id_v = row_test[3] key_pfx_v = row_test[4] key_password_v = row_test[5] #获取接口参数信息 ID_v = rows[ID] DESCRIBE_v = rows[DESCRIBE] CASE_ID_v = rows[CASE_ID] ENV_v = rows[ENV] notify_url_v = rows[notify_url] user_id_v = rows[user_id] area_name_v = rows[area_name] account_v = rows[account] password_v = rows[password] login_type_v = rows[login_type] id_card_v = rows[id_card] mobile_v = rows[mobile] real_name_v = rows[real_name] sub_area_v = rows[sub_area] corp_account_v = rows[corp_account] origin_v = rows[origin] ip_v = rows[ip] corp_name_v = rows[corp_name] url_v = rows[URL] #获取社保支持地区信息 print("获取地区信息中...") header_s = {'memberId': memberId_v, 'terminalId': terminalId_v} urllib3.disable_warnings() response = requests.get(env + "/gateway-data/security/v1/arealist", headers=header_s, verify=False) print("请求的地区为:" + area_name_v) response_json = json.loads(response.text) for row in response_json["data"]: if area_name_v == row["city_name"]: area_code = row["area_code"] print("地区编码为:" + area_code) else: pass #创建社保订单 content = { 'member_id': member_id_v, 'terminal_id': terminal_id_v, 'member_trans_date': tradedate(), 'member_trans_id': membertrans(), 'notify_url': notify_url_v, 'user_id': user_id_v, 'area_code': area_code, 'account': account_v, 'password': password_v, 'login_type': login_type_v, 'id_card': id_card_v, 'mobile': mobile_v, 'real_name': real_name_v, 'sub_area': sub_area_v, 'corp_account': corp_account_v, 'corp_name': corp_name_v, 'origin': origin_v, 'ip': ip_v } print("创建任务中,请求参数为:" + str(content)) print("报文加密中......................") content_rsa = getEncryptData(key_pfx_v, key_password_v, content).replace('"', '') print("报文加密成功......................") data = { 'member_id': member_id_v, 'terminal_id': terminal_id_v, 'data_content': content_rsa } headers = {"content-type": "application/json"} response = requests.post(env + '/gateway-data/security/v1/task/create', data=json.dumps(data), headers=headers, verify=False) response_json = json.loads(response.text) print("任务创建成功:" + str(response_json)) if response_json["data"] != None: tradeno = response_json["data"]["tradeNo"] err = '' else: tradeno = '999' err = response_json['errorMsg'] LOG_INFO = account_v + ',' + password_v + ',' + id_card_v + mobile_v + ',' + real_name_v trade_NO.append({ 'ID': ID_v, 'tradeno': tradeno, 'err': err, "env": env, "DESCRIBE": DESCRIBE_v, 'CASE_ID': CASE_ID_v, 'area': area_name_v, 'log_info': LOG_INFO, 'url': url_v }) else: print("执行下一条...") print("开始查询结果信息...") rownum = 0 for row_trande in range(len(trade_NO)): trade_NO_s = trade_NO[row_trande] errorMsgs = '' out = 0 if trade_NO_s["tradeno"] != 999: rownum = rownum + 1 #根据订单号查询订单状态 header_s = {'memberId': memberId_v, 'terminalId': terminalId_v} status = json.loads( requests.get(str(trade_NO_s["env"]) + '/gateway-data/security/v1/task/status/' + str(trade_NO_s["tradeno"]), headers=header_s).text) print("订单状态为:" + str(status)) if status["errorMsg"] == None: while status["data"]["phase"] != 'DONE': time.sleep(3) status = json.loads( requests.get(str(trade_NO_s["env"]) + '/gateway-data/security/v1/task/status/' + str(trade_NO_s["tradeno"]), headers=header_s).text) print("订单状态为:" + str(status)) if status["errorCode"] != None: errorMsgs = str(status['errorMsg']) out = 1 break elif status["data"]["phase_status"] == 'DONE_FAIL': errorMsgs = str(status["data"]["description"]) out = 1 break else: errorMsgs = str(status['errorMsg']) out = 1 if out == 0: #根据订单号查询社保信息 header_s = {'memberId': memberId_v, 'terminalId': terminalId_v} result = json.loads( requests.get(str(trade_NO_s["env"]) + '/data/security/v1/info/' + str(trade_NO_s["tradeno"]), headers=header_s).text) verify = 'Pass' report(rownum, trade_NO_s["ID"], trade_NO_s["DESCRIBE"], trade_NO_s["CASE_ID"], trade_NO_s["env"], trade_NO_s["tradeno"], trade_NO_s["area"], result, verify, errorMsgs) create_ownreport(trade_NO_s["area"], result, trade_NO_s["url"], trade_NO_s["log_info"]) else: verify = 'Fail' report(rownum, trade_NO_s["ID"], trade_NO_s["DESCRIBE"], trade_NO_s["CASE_ID"], trade_NO_s["env"], trade_NO_s["tradeno"], trade_NO_s["area"], '', verify, errorMsgs) else: report(rownum, trade_NO_s["ID"], trade_NO_s["DESCRIBE"], trade_NO_s["CASE_ID"], trade_NO_s["env"], trade_NO_s["tradeno"], trade_NO_s["area"], '', verify, trade_NO_s['err']) print("执行下一条...") print("执行完毕.......") close_workbook()
def house_fund(): #设置参数 iterations = 30 #迭代轮数 sleep_time = 30 #创建任务后的休眠时间,若任务较少则可以讲此数据调至100左右,若任务较多则调至20-30即可 localRead = readconfig.ReadConfig() path = localRead.get_address('CASE') #获取案例所在的table,以及各项所在的列 table_n = readExcelDataByIndex(path,2)[0] ID = getColumnIndex(table_n,'ID') DESCRIBE = getColumnIndex(table_n,'DESCRIBE') CASE_ID = getColumnIndex(table_n,'CASE_ID') IS_RUN = getColumnIndex(table_n,'IS_RUN') URI_NAME = getColumnIndex(table_n,'URI_NAME') ENV = getColumnIndex(table_n,'ENV') notify_url = getColumnIndex(table_n,'notify_url') user_id = getColumnIndex(table_n,'user_id') area_code = getColumnIndex(table_n,'area_code') area_name = getColumnIndex(table_n,'area_name') account = getColumnIndex(table_n,'account') password = getColumnIndex(table_n,'password') login_type = getColumnIndex(table_n,'login_type') id_card = getColumnIndex(table_n,'id_card') mobile = getColumnIndex(table_n,'mobile') real_name = getColumnIndex(table_n,'real_name') sub_area = getColumnIndex(table_n,'sub_area') corp_account = getColumnIndex(table_n,'corp_account') corp_name = getColumnIndex(table_n,'corp_name') origin = getColumnIndex(table_n,'origin') ip = getColumnIndex(table_n,'ip') size = getColumnIndex(table_n,'size') page = getColumnIndex(table_n,'page') year = getColumnIndex(table_n,'year') trade_no = getColumnIndex(table_n,'trade_no') Case_type = getColumnIndex(table_n,'Case_type') rely_on = getColumnIndex(table_n,'rely_on') errorMsg = getColumnIndex(table_n,'errorMsg') url_gjj = getColumnIndex(table_n,'URL') #解析案例 data = xlrd.open_workbook(path) data_sheet_env = data.sheets()[0] #记录生成的tradeno trade_NO = [] rownum = 0 data_sheet = data.sheets()[2] for rown in range(data_sheet.nrows-1): rows = data_sheet.row_values(rown + 1) #判断需要执行(1)才进行以下操作 if rows[IS_RUN] == 1: #获取环境变量信息 if rows[ENV] == 'TEST': row_test = data_sheet_env.row_values(1) env = row_test[1] memberId_v = row_test[2] member_id_v = row_test[2] terminalId_v = row_test[3] terminal_id_v =row_test[3] key_pfx_v = row_test[4] key_password_v =row_test[5] elif rows[ENV] == 'PRO': row_test = data_sheet_env.row_values(2) env = row_test[1] memberId_v = row_test[2] member_id_v = row_test[2] terminalId_v = row_test[3] terminal_id_v =row_test[3] key_pfx_v = row_test[4] key_password_v =row_test[5] #获取接口参数信息 ID_v = rows[ID] DESCRIBE_v = rows[DESCRIBE] CASE_ID_v = rows[CASE_ID] ENV_v = rows[ENV] URI_NAME_v = rows[URI_NAME] notify_url_v = rows[notify_url] user_id_v = rows[user_id] area_code_v = rows[area_code] area_name_v = rows[area_name] account_v = rows[account] password_v = rows[password] login_type_v = rows[login_type] id_card_v = rows[id_card] mobile_v = rows[mobile] real_name_v = rows[real_name] sub_area_v = rows[sub_area] corp_account_v = rows[corp_account] origin_v = rows[origin] ip_v = rows[ip] size_v = rows[size] page_v = rows[page] year_v = rows[year] corp_name_v = rows[corp_name] trade_no_v = rows[trade_no] Case_type_v = rows[Case_type] rely_on_v = rows[rely_on] errorMsg_v = rows[errorMsg] url_gjj_v = rows[url_gjj] #只有案例类型为跑数据的时候才进行全自动跑任务 if Case_type_v =='跑数据': rownum = rownum + 1 areacode = Get_Arealist(env,memberId_v,terminalId_v,area_name_v) trade_no_h = task_create(env,member_id_v,terminal_id_v, key_pfx_v, key_password_v, notify_url_v, '1', areacode[0], account_v, password_v, login_type_v, id_card_v, mobile_v, real_name_v, sub_area_v, corp_account_v, corp_name_v, '2', ip_v) #讲创建的任务放入一个队列,任务全部创建完成后,在依次轮询队列里的任务,获取任务结果 Trade_no = trade_no_h[0] trade_NO.append( {"url_gjj": url_gjj_v, "rownum": rownum, "memberId": memberId_v, "terminalId": terminalId_v, "tradeno": Trade_no, "ID": ID_v, "DESCRIBE": DESCRIBE_v, "CASE_ID": CASE_ID_v, "Case_type": Case_type_v, "area_name": area_name_v, "env": env, "ENV": ENV_v, "account": account_v, "password": password_v,"login_type":login_type_v,'areacode':areacode[0], "id_card": id_card_v, "mobile": mobile_v, "real_name": real_name_v,"errorMsgs":trade_no_h[4],"corp_account":corp_account_v,"corp_name":corp_name_v}) #控制创建任务的频率 # time.sleep(3) # time_e = time.time() # work_sonsu = '%.2f'% (time_e - trade_no_h[2]) # else: # rownum1 = rownum1+1 # if rows[URI_NAME] == '获取城市公积金列表': # area_code_rows = Get_Arealist(env,memberId_v,terminalId_v,area_name_v) # consu = area_code_rows[2] # if area_code_rows[1]["errorMsg"] != errorMsg_v and errorMsg_v != '' and area_code_rows[1]["errorMsg"] != None: # verify = 'Fail' # else: # verify = 'Pass' # report_x(rownum1, ID_v, DESCRIBE_v, CASE_ID_v, Case_type_v, URI_NAME_v, ENV_v,'',verify,consu,errorMsg_v,str(area_code_rows[1]["errorMsg"])) # # elif rows[URI_NAME] == '根据 areaCode 获取公积金登录信息': # Logintype= Get_Logindata(env,memberId_v,terminalId_v,area_code_v) # consu = Logintype[2] # if Logintype[1]["errorMsg"] != errorMsg_v and errorMsg_v != '' and Logintype[1]["errorMsg"] != None: # verify = 'Fail' # else: # verify = 'Pass' # report_x(rownum1, ID_v, DESCRIBE_v, CASE_ID_v, Case_type_v, URI_NAME_v, ENV_v, '', verify, consu,errorMsg_v,str(Logintype[1]["errorMsg"])) # # elif rows[URI_NAME] == '创建订单': # trade_no_c = task_create(env,member_id_v,terminal_id_v,key_pfx_v,key_password_v,notify_url_v,user_id_v,area_code_v,account_v,password_v,login_type_v,id_card_v,mobile_v,real_name_v,sub_area_v,corp_account_v,corp_name_v,origin_v,ip_v) # trade_NO[ID_v] = trade_no_c[0] # Trade_no = trade_no_c[0] # consu = trade_no_c[3] # if trade_no_c[1]["errorMsg"] != errorMsg_v and errorMsg_v != '' : # verify = 'Fail' # elif trade_no_c[1]["errorMsg"] != None and trade_no_c[1]["errorMsg"] != errorMsg_v: # verify = 'Fail' # else: # verify = 'Pass' # report_x(rownum1, ID_v, DESCRIBE_v, CASE_ID_v, Case_type_v, URI_NAME_v, ENV_v, '', verify, consu,errorMsg_v,str(trade_no_c[1]["errorMsg"])) # # elif rows[URI_NAME] == '订单执行状态查询': # status_rows = get_status(env,memberId_v,terminalId_v,trade_NO[rely_on_v]) # Trade_no = trade_NO[rely_on_v] # consu = status_rows[1] # if status_rows[0]["errorMsg"] != '订单不存在': # while status_rows[0]["data"]["phase"] != 'DONE': # time.sleep(1) # status_rows = get_status(env, memberId_v, terminalId_v, Trade_no) # if status_rows[0]["errorCode"] != None: # break # elif status_rows[0]["data"]["phase_status"] == 'DONE_FAIL': # break # # if status_rows[0]["errorMsg"] != errorMsg_v and errorMsg_v != '' : # errr = str(status_rows[0]["errorMsg"]) # verify = 'Fail' # elif status_rows[0]["errorMsg"] != None and status_rows[0]["errorMsg"] != errorMsg_v : # errr = str(status_rows[0]["errorMsg"]) # verify = 'Fail' # elif status_rows[0]["data"]["phase_status"] == 'DONE_FAIL' : # errr = str(status_rows[0]["data"]["description"]) # verify = 'Fail' # else: # verify = 'Pass' # report_x(rownum1, ID_v, DESCRIBE_v, CASE_ID_v, Case_type_v, URI_NAME_v, ENV_v, Trade_no, verify,consu,errorMsg_v,errr) # # elif rows[URI_NAME] == '获取公积金信息': # if rely_on_v != '': # result = get_result(env,memberId_v,terminalId_v,trade_NO[rely_on_v]) # Trade_no = trade_NO[rely_on_v] # else: # result = get_result(env,memberId_v,terminalId_v,trade_no_v) # Trade_no = trade_no_v # consu = result[1] # if result[0]["errorMsg"] != errorMsg_v and errorMsg_v != '' : # verify = 'Fail' # elif result[0]["errorMsg"] != None and result[0]["errorMsg"] != errorMsg_v: # verify = 'Fail' # else: # verify = 'Pass' # report_x(rownum1, ID_v, DESCRIBE_v, CASE_ID_v, Case_type_v, URI_NAME_v, ENV_v, Trade_no, verify, # consu,errorMsg_v,str(result[0]["errorMsg"])) # # elif rows[URI_NAME] == '根据订单号、年份分页查询公积金缴纳信息': # if rely_on_v != '': # bills = get_bills(env, memberId_v, terminalId_v, trade_NO[rely_on_v], year_v, page_v, size_v) # Trade_no = trade_NO[rely_on_v] # else: # bills = get_bills(env, memberId_v, terminalId_v, trade_no_v, year_v, page_v, size_v) # Trade_no = trade_no_v # # consu = bills[1] # if bills[0]["errorMsg"] != errorMsg_v and errorMsg_v != '' : # verify = 'Fail' # elif bills[0]["errorMsg"] != None and bills[0]["errorMsg"] != errorMsg_v : # verify = 'Fail' # else: # verify = 'Pass' # report_x(rownum1, ID_v, DESCRIBE_v, CASE_ID_v, Case_type_v, URI_NAME_v, ENV_v, Trade_no, verify, # consu,errorMsg_v,str(bills[0]["errorMsg"])) # # elif rows[URI_NAME] == '根据订单号查询公积金账户信息': # if rely_on_v != '': # userinfo_rows = get_user(env, memberId_v, terminalId_v, trade_NO[rely_on_v]) # Trade_no = trade_NO[rely_on_v] # else: # userinfo_rows = get_user(env, memberId_v, terminalId_v, trade_no_v) # Trade_no = trade_no_v # # # consu = userinfo_rows[1] # if userinfo_rows[0]["errorMsg"] != errorMsg_v and errorMsg_v != '' : # verify = 'Fail' # elif userinfo_rows[0]["errorMsg"] != None and userinfo_rows[0]["errorMsg"] != errorMsg_v: # verify = 'Fail' # else: # verify = 'Pass' # report_x(rownum1, ID_v, DESCRIBE_v, CASE_ID_v, Case_type_v, URI_NAME_v, ENV_v, Trade_no, verify, # consu,errorMsg_v,str(userinfo_rows[0]["errorMsg"])) # # elif rows[URI_NAME] == '根据订单号查询公积金贷款信息': # if rely_on_v != '': # loaninfo_rows = get_loan(env, memberId_v, terminalId_v, trade_NO[rely_on_v]) # Trade_no = trade_NO[rely_on_v] # else: # loaninfo_rows = get_loan(env, memberId_v, terminalId_v, trade_no_v) # Trade_no = trade_no_v # # # consu = loaninfo_rows[1] # if loaninfo_rows[0]["errorMsg"] != errorMsg_v and errorMsg_v != '' : # verify = 'Fail' # elif loaninfo_rows[0]["errorMsg"] != None and loaninfo_rows[0]["errorMsg"] != errorMsg_v : # verify = 'Fail' # else: # verify = 'Pass' # report_x(rownum1, ID_v, DESCRIBE_v, CASE_ID_v, Case_type_v, URI_NAME_v, ENV_v, Trade_no, verify, # consu,errorMsg_v,str(loaninfo_rows[0]["errorMsg"])) # # elif rows[URI_NAME] == '根据订单号查询公积金还款信息': # if rely_on_v != '': # repayinfo_rows = get_repay(env, memberId_v, terminalId_v, trade_NO[rely_on_v]) # Trade_no = trade_NO[rely_on_v] # else: # repayinfo_rows = get_repay(env, memberId_v, terminalId_v, trade_no_v) # Trade_no = trade_no_v # # consu = repayinfo_rows[1] # if repayinfo_rows[0]["errorMsg"] != errorMsg_v and errorMsg_v != '' : # verify = 'Fail' # elif repayinfo_rows[0]["errorMsg"] != None and repayinfo_rows[0]["errorMsg"] != errorMsg_v: # verify = 'Fail' # else: # verify = 'Pass' # report_x(rownum1, ID_v, DESCRIBE_v, CASE_ID_v, Case_type_v, URI_NAME_v, ENV_v, Trade_no, verify, # consu,errorMsg_v,str(repayinfo_rows[0]["errorMsg"])) # print('开始下一条执行..........') else: continue #轮询订单队列,依次获取订单信息 time.sleep(sleep_time) def get_results(trade_NO,trade_NO_re): for ii in range(len(trade_NO)): out = 0 Trade_no = trade_NO[ii]["tradeno"] account_v = trade_NO[ii]["account"] password_v = trade_NO[ii]["password"] id_card_v = trade_NO[ii]["id_card"] mobile_v = trade_NO[ii]["mobile"] real_name_v = trade_NO[ii]["real_name"] env = trade_NO[ii]["env"] memberId_v = trade_NO[ii]["memberId"] terminalId_v = trade_NO[ii]["terminalId"] rownum = trade_NO[ii]["rownum"] ID_v = trade_NO[ii]["ID"] DESCRIBE_v = trade_NO[ii]["DESCRIBE"] CASE_ID_v = trade_NO[ii]["CASE_ID"] Case_type_v = trade_NO[ii]["Case_type"] ENV_v = trade_NO[ii]["ENV"] area_name_v = trade_NO[ii]["area_name"] url_gjj_v = trade_NO[ii]["url_gjj"] login_type_v = trade_NO[ii]["login_type"] areacode = trade_NO[ii]["areacode"] corp_account_v = trade_NO[ii]["corp_account"] corp_name_v = trade_NO[ii]["corp_name"] try: if Trade_no == '999': out = 1 errorMsgs = trade_NO[ii]["errorMsgs"] else: print("开始查询 %s 地区公积金....." % area_name_v) status = get_status(env, memberId_v, terminalId_v, Trade_no)[0] retry_times = 0 try_times = 0 if status["errorMsg"] == None: while status["data"]["phase"] != 'DONE': status = get_status(env, memberId_v, terminalId_v, Trade_no)[0] errorMsgs = '' try_times = try_times + 1 #对返回错误类型为官网繁忙或者验证码错误的时候增加重试机制 if '验证码' in status["data"]["description"] or '官网' in status["data"]["description"] : print("验证码错误,正在重试") trade_no_h = task_create(env, member_id_v, terminal_id_v, key_pfx_v, key_password_v, '', '1', areacode, account_v, password_v, login_type_v, id_card_v, mobile_v, real_name_v, '',corp_account_v,corp_name_v, '2', '') trade_NO_re.append( {"url_gjj": url_gjj_v, "rownum": rownum, "memberId": memberId_v, "terminalId": terminalId_v, "tradeno": trade_no_h[0], "ID": ID_v, "DESCRIBE": DESCRIBE_v, "CASE_ID": CASE_ID_v, "Case_type": Case_type_v, "area_name": area_name_v, "env": env, "ENV": ENV_v, "account": account_v, "password": password_v, "login_type": login_type_v, 'areacode': areacode, "id_card": id_card_v, "mobile": mobile_v, "real_name": real_name_v, "errorMsgs": trade_no_h[4],"corp_account":corp_account_v,"corp_name":corp_name_v}) out = 2 break elif status["errorCode"] != None: errorMsgs = str(status['errorMsg']) out = 1 break elif status["data"]["phase_status"] == 'DONE_FAIL': try: errorMsgs = str(status["data"]["description"]) except: pass out = 1 break elif try_times > 40: print("任务超时") out = 1 errorMsgs = "任务超时" break else: errorMsgs = str(status['errorMsg']) out = 1 except: pass if out == 0: load_info = account_v + ',' + password_v + ',' + id_card_v + mobile_v + ',' + real_name_v result = get_result(env, memberId_v, terminalId_v, Trade_no)[0] bills_2014 = get_bills(env, memberId_v, terminalId_v, Trade_no, '2014', '1', '20')[0] bills_2015 = get_bills(env, memberId_v, terminalId_v, Trade_no, '2015', '1', '20')[0] bills_2016 = get_bills(env, memberId_v, terminalId_v, Trade_no, '2016', '1', '20')[0] bills_2017 = get_bills(env, memberId_v, terminalId_v, Trade_no, '2017', '1', '20')[0] bills_2018 = get_bills(env, memberId_v, terminalId_v, Trade_no, '2018', '1', '20')[0] userinfo = get_user(env, memberId_v, terminalId_v, Trade_no)[0] loaninfo = get_loan(env, memberId_v, terminalId_v, Trade_no)[0] repayinfo = get_repay(env, memberId_v, terminalId_v, Trade_no)[0] verify = 'Pass' report(rownum, ID_v, DESCRIBE_v, CASE_ID_v, Case_type_v, '', ENV_v, area_name_v, Trade_no, result, bills_2014, bills_2015, bills_2016, bills_2017, bills_2018, userinfo, loaninfo, repayinfo, verify, 0, '') if result["errorCode"] == None: create_ownreport(area_name_v, ID_v, Trade_no, result, url_gjj_v, load_info,rownum) else: pass time.sleep(4) elif out == 1: verify = 'Fail' report(rownum, ID_v, DESCRIBE_v, CASE_ID_v, Case_type_v, URI_NAME_v, ENV_v, area_name_v, Trade_no, '', '', '', '', '', '', '', '', '', verify, 0, errorMsgs) else: pass print('%s 地区公积金查询完毕,开始查询下一个地区......' % area_name_v) return trade_NO_re names = {'trade_NO_re' + str(iname): 'trade_NO_re' + str(iname) for iname in range(iterations) } names['trade_NO_re0'] = [] get_results(trade_NO,names['trade_NO_re0']) for tr in range(iterations): names['trade_NO_re%s'%str(tr+1)] = [] if len(names['trade_NO_re%s'% str(tr)]) != 0: time.sleep(sleep_time*2) get_results(names['trade_NO_re%s'%str(tr)],names['trade_NO_re%s'%str(tr+1)]) else: break print("执行完毕.......") reports(data_sheet.nrows,rownum) close_workbook()
def getdata(pname): data = readconfig.ReadConfig("./conf/db_config.ini").get("baseconf", pname) return data
import requests import sys import readconfig from common.Log import MyLog as Log sys.path.append('C:\\Users\\Administrator\\Desktop\\exam_api_test\\common') sys.path.append('C:\\Users\\Administrator\\Desktop\\exam_api_test') localreadconfig = readconfig.ReadConfig() class ConfigHttp: def __init__(self): global baseurl, timeout baseurl = localreadconfig.get_http('baseurl') timeout = localreadconfig.get_http('timeout') self.log = Log.get_log() self.logger = self.log.get_logger() self.url = None self.headers = {} self.params = {} self.data = {} self.files = {} def set_url(self, url): self.url = baseurl + url def set_headers(self, headers): self.headers = headers def set_params(self, params): self.params = params
#__*__coding:utf-8__*__ import requests from common import Fahrenheit2Degree, GenerateWeaterTime import readconfig as readconfig method = '/forecast' loadreadconfig = readconfig.ReadConfig() host = loadreadconfig.get_host('Host') key = loadreadconfig.get_key('Key') latitude = loadreadconfig.get_latitude('Latitude') longtitude = loadreadconfig.get_longtitude('Longtitude') headers = {'content-encoding': 'utf-8', 'content-type': 'application/json'} URL = host + method + '/' + key + '/{0},{1}'.format(latitude, longtitude) #for reduce latency and saving cache need optional params in http query string BURL = URL + '?exclude=minutely,hourly,alerts,flags&lang=zh' #BetterURL rqst = requests.get(BURL, headers=headers, timeout=10) if rqst.status_code == 200: weatherdict = rqst.json() timezone = weatherdict.get('timezone') current = weatherdict.get('currently').get('time') #得到的是UNIX格式的时间戳 time = GenerateWeaterTime(current) #转换成正常的时间 summary = weatherdict.get('currently').get('summary') Faht = weatherdict.get('currently').get('temperature') #Fahrenheit Degree = Fahrenheit2Degree(Faht) print("时区:{0}\n更新时间:{1}\n当前气温:{2}℃\n描述:{3}".format(timezone, time, Degree,
def get_table_out(): r = readconfig.ReadConfig() t = r.get_db("TABLES", "t_out") return t
'select * from Win32_Process where Name="%s"' % process_name) except Exception as e: print(process_name + "error : ", e) if len(processCodeCov) > 0: print(process_name + " exist") return 1 else: print(process_name + " is not exist") return 0 if __name__ == '__main__': while True: test = readconfig.ReadConfig() exe_name = test.get_db("EXE", "file_name") exe_path = test.get_db('EXE', 'path') timeout = int(test.get_db('EXE', 'timeout')) print('监测时间:', timeout) file = exe_path + '\\' + exe_name print(file) if os.path.exists(file) is True: print('True') ret = CheckProcExistByPN(exe_name)
import os import requests import json import hashlib import tkinter from selenium import webdriver from selenium.webdriver.chrome.options import Options from pymongo import MongoClient import shodan import searchfunc import basefunc import readconfig threadnum = 20 screenshotdir = 'baidupanscreenshot' configread = readconfig.ReadConfig() mongo = basefunc.Mongo('localhost', 27017) dataformat = basefunc.dataformat() basefunc.sysinit().dirinit(screenshotdir) screenwidth, screenheight = basefunc.screenshot().getscreenwh() # 先获取屏幕大小,后续传给截图程序让浏览器最大化,headless无法最大化浏览器 urllist = [] scshot = basefunc.screenshot() for i in (mongo.search('scanresultdb', 'baidupan', {'screenshotkey': 'unshot'})): visiturl = (i.get('baidupanurl')).encode('utf-8') try: # print visiturl + 'ok!' scshot.get_site_pic(visiturl, screenwidth, screenheight, screenshotdir) insertdata = {'screenshotkey': 'shot'} mongo.update('scanresultdb', 'baidupan', {'baidupanurl': visiturl}, insertdata) print(visiturl + ' ok!')