栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

unittest之common方法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/969127.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号