Esempio n. 1
0
 def download_file(self,
                   method,
                   url,
                   cookie=None,
                   header=None,
                   file_name=None):
     """
     下载文件
     :param method: 请求方法
     :param url: 请求地址
     :param cookie: 请求cookies
     :param header: 请求头西悉尼
     :param file_name: 下载文件名称
     :return:
     """
     if "http" not in url:
         url = self.base_url + '/' + url
     response = requests.request(method,
                                 url,
                                 cookies=cookie,
                                 headers=header,
                                 timeout=self.timeout,
                                 verify=self.verify)
     res = response.content
     if file_name is None:
         file_name = url.split('/')[-1]
     else:
         file_name = file_name
     base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
     file_path = os.path.join(base_dir + '/download_file/' + file_name)
     logging.info("保存文件路径:{0}".format(file_path))
     with open(file_path, 'wb') as f:
         f.write(res)
     Logger().close_logger()
Esempio n. 2
0
 def send_request(self,
                  method,
                  url,
                  data=None,
                  cookie=None,
                  header=None,
                  save_cookie=None):
     """
     请求接口主入口
     :param method: 请求方法
     :param url: 请求地址
     :param data: 请求参数
     :param cookie: 请求cookie
     :param save_cookie: 是否获取cookie
     :param header: 请求头信息
     :return:
     """
     if method in 'get' or method in 'GET':
         req = self.send_get(url=url,
                             param=data,
                             cookie=cookie,
                             header=header,
                             save_cookie=save_cookie)
     elif method in 'post' or method in 'POST':
         req = self.send_post(url=url,
                              data=data,
                              cookie=cookie,
                              header=header,
                              save_cookie=save_cookie)
     else:
         req = None
         logging.error("请求方式错误")
     Logger().close_logger()
     return req
Esempio n. 3
0
 def upload_file(self, method, url, file_name, cookie=None, header=None):
     """
     文件上传:待验证
     :param file_name: 文件名称
     :param method:请求方法
     :param url:请求地址
     :param cookie:请求cookie
     :param header:请求头信息
     :return:
     """
     base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
     file_path = os.path.join(base_dir + '/download_file/' + file_name)
     file = {'file': (f'{file_name}', open(file_path, 'rb'))}
     if "http" not in url:
         url = self.base_url + '/' + url
     try:
         response = requests.request(method,
                                     url,
                                     files=file,
                                     cookies=cookie,
                                     headers=header,
                                     timeout=self.timeout,
                                     verify=self.verify)
         logging.info("上传[{0}]成功".format(file_name))
         res = response.text
     except Exception as msg:
         logging.error("上传文件失败:{0".format(msg))
         res = None
     Logger().close_logger()
     return res
Esempio n. 4
0
 def __init__(self, file_name=None):
     if file_name is None:
         self.file_name = "cookie.json"
     else:
         self.file_name = file_name
     self.filepath = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + '/config/' + self.file_name)
     Logger().close_logger()
Esempio n. 5
0
 def getXmlUser(self, node, name):
     '''
     获取节点中属性值
     :param node: xml文件中节点名称
     :param name: xml文件中属性名称
     :return:
     '''
     data = None
     try:
         dom = minidom.parse(self.dir_base())
         db = dom.documentElement
         itemlist = db.getElementsByTagName(node)
         item = itemlist[0]
         if item.getAttribute(name):
             data = item.getAttribute(name)
             logging.info("获取节点[{0}]下[{1}]的属性值:{2}".format(
                 node, name, data))
         else:
             data = None
             logging.info("无法获取节点下的属性值")
     except:
         logging.error("无法获取节点")
     finally:
         Logger().close_logger()
     return data
Esempio n. 6
0
 def send_email(self):
     if self.annex == "1":
         logging.info("邮件包含附件")
         self.email_anner()
     else:
         logging.info("邮件不包含附件")
         self.email_noanner()
     Logger().close_logger()
Esempio n. 7
0
 def login(self, username, password):
     self.input_value(self.username_loc, username)
     logging.info("用户名:{0}".format(username))
     self.input_value(self.password_loc, password)
     logging.info("密码:{0}".format(password))
     self.click_element(self.login_loc)
     logging.info("点击登录按钮")
     Logger().close_logger()
Esempio n. 8
0
 def get_cols(self):
     self.get_file()
     col = None
     try:
         logging.info("获取Excel总列数:{0}".format(self.table.ncols))
         col = self.table.ncols
     except:
         logging.error("获取Excel总列数失败")
     Logger().close_logger()
     return col
Esempio n. 9
0
 def get_value(self, key=None):
     '''
     获取json文件内容
     :param key: 获取json文件中指定key的值
     :return:
     '''
     with open(self.filepath, 'r', encoding='UTF-8') as f:
         data = json.load(f)
         logging.info("json文件数据为:{0}".format(data))
     Logger().close_logger()
     return data if key is None else data.get(key)
Esempio n. 10
0
 def get_value(self, node, key):
     result = None
     try:
         cf = self.loading_config()
         result = cf.get(node, key)
         logging.info("成功获取[{0}]下的[{1}]={2}".format(node, key,
                                                    cf.get(node, key)))
     except:
         logging.error("获取[{0}]下的[{1}]值失败".format(node, key))
     finally:
         Logger().close_logger()
         return result
Esempio n. 11
0
def main():
    base_dir = os.path.dirname(os.path.abspath(__file__))
    test_dir = os.path.join(base_dir + '/testcase')
    logging.info("获取测试case脚本路径:{0}".format(test_dir))
    nowtime = time.strftime('%Y-%m-%d %H_%M')
    report_name = os.path.join(base_dir + '/report/' + nowtime + '-result.html')
    logging.info("存放报告文件路径:{0}".format(report_name))
    discover = unittest.defaultTestLoader.discover(test_dir, pattern="test*.py")
    with open(report_name, 'wb') as f:
        runner = BSTestRunner(stream=f, title="Test Report", description="Test case Result")
        runner.run(discover)
    Logger().close_logger()
Esempio n. 12
0
 def get_file_path(self):
     """
     获取文件路径
     :return:
     """
     base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
     if self.open_file is None:
         file_path = os.path.join(base_dir + '/data/' + 'template.xlsx')
     else:
         file_path = os.path.join(base_dir + '/data/' + self.open_file)
     Logger().close_logger()
     return file_path
Esempio n. 13
0
 def get_lines(self):
     '''
     获取Excel文件总行数
     :return:
     '''
     self.get_file()
     row = None
     try:
         logging.info("获取Excel总行数:{0}".format(self.table.nrows))
         row = self.table.nrows
     except:
         logging.error("获取Excel总行数失败")
     Logger().close_logger()
     return row
Esempio n. 14
0
 def get_cols(self):
     """
     获取总列数
     :return:
     """
     col = None
     table = self.get_sheet()
     try:
         logging.info("获取Excel总列数:{0}".format(table.max_column))
         col = table.max_column
     except Exception as msg:
         logging.error("获取Excel总列数失败:{0}".format(msg))
     Logger().close_logger()
     return col
Esempio n. 15
0
 def get_rows(self):
     """
     获取Excel文件总行数
     :return:
     """
     row = None
     table = self.get_sheet()
     try:
         logging.info("获取Excel总行数:{0}".format(table.max_row))
         row = table.max_row
     except Exception as msg:
         logging.error("获取Excel总行数失败:{0}".format(msg))
     Logger().close_logger()
     return row
Esempio n. 16
0
 def get_excel_data(self):
     """
     获取文件每行数据,返回list
     :return:
     """
     excel_case = read_ini.get_value('sys_default', 'excel_case')
     rows = self.get_rows()
     if excel_case:
         logging.info("忽略文件第一行数据")
         data = [self.get_row_datas(i + 1) for i in range(1, rows)]
     else:
         logging.info("获取文件所有内容")
         data = [self.get_row_datas(i + 1) for i in range(rows)]
     Logger().close_logger()
     return data
Esempio n. 17
0
 def get_openxlsx(self):
     """
     获取文件
     :return:
     """
     open_excel = None
     file_path = self.get_file_path()
     try:
         logging.info("获取Excel-xlsx文件:{0}".format(file_path))
         open_excel = openpyxl.load_workbook(file_path)
     except Exception as msg:
         logging.error("获取Excel文件失败:{0}".format(msg))
     Logger().close_logger()
     # open_excel.close()
     return open_excel
Esempio n. 18
0
 def get_row_datas(self, row):
     """
     获取行数据
     :return:
     """
     result = []
     table = self.get_sheet()
     try:
         for i in table[row]:
             result.append(i.value)
         logging.info("获取Excel-xlsx第{0}行数据为{1}".format(row, result))
     except Exception as msg:
         logging.error("获取Excel文件内容失败:{0}".format(msg))
     Logger().close_logger()
     return result
Esempio n. 19
0
 def write_value(self, row, col, value):
     open_excel = self.get_openxlsx()
     try:
         # logging.info("获取Excel-xlsx的第{0}个sheet表".format(self.index + 1))
         sheet = open_excel.worksheets[self.index]
         # logging.info("在工作表{0}中第{1}行第{2}列中写入值:{3}".format(open_excel.sheetnames[self.index], row, col, value))
         sheet.cell(row, col).value = value
         logging.info("在工作表{0}中第{1}行第{2}列中写入值:{3}".format(
             sheet.title, row, col, value))
         file_path = self.get_file_path()
         logging.info("保存文件:{0}".format(file_path))
         open_excel.save(file_path)
         open_excel.close()
     except Exception as msg:
         logging.error("Excel中写入数据失败:{0}".format(msg))
     Logger().close_logger()
Esempio n. 20
0
 def get_col_value(self,row,col):
     '''
     获取单元格的值
     :param row: 行号
     :param col: 列号
     :return: 单元格值
     '''
     self.get_file()
     data = None
     try:
         logging.info("获取Excel第{0}行第{1}列的值:{2}".format(row,col,self.table.cell(row-1,col-1).value))
         data = self.table.cell(row-1,col-1).value
     except:
         logging.error("获取Excel单元格值失败")
     Logger().close_logger()
     return data
Esempio n. 21
0
 def get_sheet(self):
     """
     获取文件完整路径
     :return:
     """
     table = None
     open_excel = self.get_openxlsx()
     try:
         sheet_names = open_excel.sheetnames
         logging.info("获取Excel-xlsx的第{0}个sheet".format(self.index + 1))
         table = open_excel[sheet_names[self.index]]
     except Exception as msg:
         logging.error("获取Excel-xlsx的第{0}个sheet失败:{1}".format(
             self.index + 1, msg))
     Logger().close_logger()
     # open_excel.close()
     return table
Esempio n. 22
0
 def get_data(self):
     '''
     获取文件数据内容
     :return:
     '''
     result = []
     self.get_file()
     try:
         logging.info("获取Excel的总行数:{0}".format(self.table.nrows))
         for i in range(self.table.nrows):
             logging.info("获取第{0}行数据:{1}".format(i+1,self.table.row_values(i)))
             col = self.table.row_values(i)
             result.append(col)
     except:
         logging.error("获取Excel文件内容失败")
     Logger().close_logger()
     return result
Esempio n. 23
0
 def get_col_datas(self, col):
     """
     获取列数据
     :param col:
     :return:
     """
     result = []
     table = self.get_sheet()
     row = self.get_rows()
     try:
         for i in range(1, row + 1):
             result.append(table.cell(i, col).value)
         logging.info("获取Excel-xlsx第{0}列数据为{1}".format(col, result))
     except Exception as msg:
         logging.error("获取Excel文件内容失败:{0}".format(msg))
     Logger().close_logger()
     return result
Esempio n. 24
0
 def getXmlDate(self, node):
     '''
     获取xml文件节点中数据
     :param value:xml 文件夹中单节点名称
     '''
     data = None
     try:
         dom = minidom.parse(self.dir_base())
         db = dom.documentElement
         name = db.getElementsByTagName(node)
         data = name[0].firstChild.data
         logging.info("获取节点数据:{0}".format(data))
     except:
         logging.error("无法获取节点数据")
     finally:
         Logger().close_logger()
     return data
Esempio n. 25
0
 def get_data_value(self, row, col):
     """
     获取单元格的值
     :param row: 行号
     :param col: 列号
     :return: 单元格值
     """
     data = None
     table = self.get_sheet()
     try:
         logging.info("获取Excel第{0}行第{1}列的值:{2}".format(
             row, col,
             table.cell(row, col).value))
         data = table.cell(row, col).value
     except Exception as msg:
         logging.error("获取Excel单元格值失败:{0}".format(msg))
     Logger().close_logger()
     return data
Esempio n. 26
0
 def get_value_row(self, value):
     """
     获取指定值所在行
     :param value:
     :return:
     """
     num = 1
     table = self.get_sheet()
     rows = table.max_row
     for row in range(rows):
         all_data = [i.value for i in table[row + 1]]
         for data in all_data:
             if value == data:
                 logging.info("值{0}所在的行为:{1}".format(value, num))
                 Logger().close_logger()
                 return num
         num = num + 1
     return None
Esempio n. 27
0
 def write_value(self, data, key=None):
     '''
     将数据写入json文件
     :param data: 需要写入的数据
     :param key: 将数据写入json文件中指定key的值
     :return:
     '''
     if key is None:
         data_value = json.dumps(data, ensure_ascii=False)
         logging.info("写入json文件数据为:{0}".format(data_value))
         with open(self.filepath, "w+", encoding='UTF-8') as f:
             f.write(data_value)
     else:
         data_value = self.get_value()
         data_value[key] = data
         with open(self.filepath, "w+", encoding='UTF-8') as f:
             f.write(json.dumps(data_value, ensure_ascii=False))
             logging.info("写入json文件数据为:{0}".format(data_value))
     Logger().close_logger()
Esempio n. 28
0
    def email_noanner(self):
        try:
            msg = MIMEText(self.content, 'html', 'utf-8')
            msg['Subject'] = Header(self.subject, 'utf-8')
            msg['From'] = self.sender
            msg['To'] = ';'.join(self.receives)

            smtp = smtplib.SMTP_SSL(self.smtpserver, 465)
            logging.info("连接邮件服务器")
            smtp.helo(self.smtpserver)
            smtp.ehlo(self.smtpserver)
            smtp.login(self.sender, self.password)
            logging.info("登录邮件服务器")

            smtp.sendmail(self.sender, self.receives, msg.as_string())
            logging.info("发送邮件成功")
            smtp.quit()
        except:
            logging.error("发送邮件失败")
        finally:
            Logger().close_logger()
Esempio n. 29
0
 def send_post(self,
               url,
               data=None,
               cookie=None,
               header=None,
               save_cookie=None):
     """
     发送post请求
     :param url: 请求地址
     :param data: 请求参数
     :param cookie: 请求cookie
     :param header: 请求头信息
     :param save_cookie: 是否获取cookie
     :return:
     """
     if "http" not in url:
         if url[0] in '/':
             url = self.base_url + url
         else:
             url = self.base_url + '/' + url
     logging.info("完整的请求地址:{0} 请求方式为:{1}".format(url, 'post'))
     response = requests.post(url=url,
                              data=data,
                              cookies=cookie,
                              headers=header,
                              timeout=self.timeout,
                              verify=self.verify)
     if save_cookie is not None:
         cookie_value_jar = response.cookies
         cookie_value = requests.utils.dict_from_cookiejar(cookie_value_jar)
         logging.info("cookies信息为:{0}".format(cookie_value))
         read_json.write_value(cookie_value)
     try:
         res = json.loads(response.text)
         logging.info("返回数据为json格式")
     except:
         res = response.text
     Logger().close_logger()
     return res
Esempio n. 30
0
def open_browser(browertype=None):
    driver_path = read_ini.get_value('sys_default', 'driver_path')
    if browertype is not None:
        if "Chrome" in browertype:
            logging.info("启动Chrome浏览器,驱动位置:{0}".format(driver_path))
            driver = webdriver.Chrome(driver_path)
        elif "firefox" in browertype:
            logging.info("启动Firefox浏览器,驱动位置:{0}".format(driver_path))
            driver = webdriver.Firefox(driver_path)
        elif "ie" in browertype:
            logging.info("启动Ie浏览器,驱动位置:{0}".format(driver_path))
            driver = webdriver.Ie(driver_path)
        elif "PhantomJS" in browertype:
            logging.info("启动PhantomJS浏览器,驱动位置:{0}".format(driver_path))
            driver = webdriver.PhantomJS(driver_path)
        else:
            logging.info("启动默认Chrome浏览器,驱动位置:{0}".format(driver_path))
            driver = webdriver.Chrome(driver_path)
    else:
        logging.info("启动默认Chrome浏览器,驱动位置:{0}".format(driver_path))
        driver = webdriver.Chrome(driver_path)
    Logger().close_logger()
    return driver