Пример #1
0
 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
Пример #2
0
 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)
Пример #3
0
 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()
Пример #4
0
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)
Пример #5
0
'''

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()
Пример #6
0
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)
Пример #7
0
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)
Пример #8
0
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)
Пример #9
0
 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)
Пример #10
0
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:
Пример #11
0
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("/"):
Пример #12
0
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()
Пример #13
0
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()
Пример #14
0
def getdata(pname):
    data = readconfig.ReadConfig("./conf/db_config.ini").get("baseconf", pname)
    return data
Пример #15
0
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
Пример #16
0
#__*__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,
Пример #17
0
def get_table_out():
    r = readconfig.ReadConfig()
    t = r.get_db("TABLES", "t_out")
    return t
Пример #18
0
            '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)
Пример #19
0
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!')