unittest之common方法

1. 关于采集日志的方法封装,如下所示:

import logging,os,time
from logging.handlers import TimedRotatingFileHandler

class GeneLog:
    @staticmethod
    def gene_log():
        geneloger=logging.getLogger("pam")
        geneloger.setLevel("DEBUG")
        now=time.strftime("%y%m%d_%H%M",time.localtime())
        log_path=os.path.dirname(os.path.dirname(__file__))+"/logs/"+now+".log"
        file_handler=TimedRotatingFileHandler(
            filename=log_path,
            when="D",
            interval=1,
            backupCount=10
        )
        file_handler.setLevel("DEBUG")
        format=logging.Formatter('%(asctime)s - [%(filename)s-->line:%(lineno)d - %(levelname)s:%(message)s]')
        file_handler.setFormatter(format)
        geneloger.addHandler(file_handler)
        return geneloger

if __name__=="__main__":
    GeneLog().gene_log().info("AA")

2.关于读取ini配置文件的方法封装,如下所示:

import configparser

class ReadConfig:
    def __init__(self,filename,encoding="utf-8"):
        self.filename=filename
        self.encoding=encoding
        self.configer=configparser.ConfigParser()
        self.configer.read(filename,encoding)
    def get_str(self,section,option):
        return self.configer.get(section,option)
    def get_int(self,section,option):
        return self.configer.getint(section,option)

if __name__=="__main__":
    res=ReadConfig("../configs/pam_urls.ini").get_str("SIT","url_login")
    print(res)

3.关于读取excel文件的方法封装,如下所示:

import openpyxl

class ReadExcel:
    def __init__(self,file_name,sheet_name):
        self.file_name=file_name
        self.sheet_name=sheet_name
    def open(self):
        self.work=openpyxl.load_workbook(self.file_name)
        self.sheet=self.work[self.sheet_name]
    def close(self):
        self.work.close()
    def read_data(self):
        """按行读取数据,最后返回一个存储字典的列表"""
        self.open()
        rows=list(self.sheet.rows)
        titles=[]
        for t in rows[0]:
            title=t.value
            titles.append(title)
        cases=[]
        for row in rows[1:]:
            case=[]
            for r in row:
                case.append(r.value)
            cases.append(dict(zip(titles,case)))
        self.close()
        return cases
    def write_data(self,row,column,msg):
        self.open()
        self.sheet.cell(row=row,column=column,value=msg)
        self.work.save(self.file_name)
        self.close()

if __name__=="__main__":
    res=ReadExcel("../testdata/pam_productid.xlsx","submit").read_data()
    print(res)

4.通过selenium获取cookie的方法封装,如下所示:

import os.path
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
from common.read_config import ReadConfig

class GetCookie:
    def __init__(self):
        self.base_dir=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
        self.RC=ReadConfig(self.base_dir+"/configs/pam_urls.ini")
    def get_cookie(self):
        br=webdriver.Chrome()
        br.get(self.RC.get_str("SIT","url_login"))
        sleep(2)
        br.maximize_window()
        username=br.find_element(By.ID,"uid")
        username.clear()
        username.send_keys("lwx5333879")
        password=br.find_element(By.ID,"password")
        password.clear()
        password.send_keys("1234678")
        submit=br.find_element(By.NAME,"Submit")
        submit.click()
        sleep(3)
        cookie_list=br.get_cookie()
        return ";".join([item["name"]+"="+item["value"] for item in cookie_list])

5.关于请求方法的封装,如下所示:

import requests
import jsonpath

class ApiRequest:
    def do_get(self,url,params=None,headers=None,**kwargs):
        return requests.get(url=url,params=params,headers=headers,**kwargs)
    def do_post(self,url,json=None,headers=None,**kwargs):
        return requests.post(url=url,json=json,headers=headers,**kwargs)
    def get_text(self,result,name):
        return jsonpath.jsonpath(result,"$..{0}".format(name))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值