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))