selenium-python-unittest自动化测试框架(数据和代码完全分离)

这套框架适合使用的场景:
1、测试数据不多
2、执行人员不需要会代码
3、看报告的时候要看执行详细结果
工程分为以下几部分:
1、公用方法包-Util
2、需要调用的固定变量包-ProjectVar
3、元素路径目录-Conf
4、页面元素常用动作方法+模块动作方法包-Action
5、测试用例执行包-TestUnittest
6、截图目录
看一下目录组成结构:
这里写图片描述

  • 1.公用方法包-Util
  • 1.1 DirAndFile.py
  • 这个模块是为了创建目录用的
#encoding=utf-8
import os
from ProjectVar.Var import *

def createDir(path,dirName):
    #os.path.join(x,y)是拼接路径用的
    dirPath=os.path.join(path,dirName)
    #判断路径是否存在,存在则pass,否则新建
    if os.path.exists(dirPath):
        return dirPath
        pass
    else:
        os.mkdir(dirPath)
        return dirPath

  • 1.2Excel.py
  • 这个模块封装了excel的常用操作方法
#encoding=utf-8
from openpyxl import Workbook
from openpyxl import load_workbook
from ProjectVar.Var import *
from openpyxl.styles import Border,Side,Font

class Excel(object):
    def __init__(self):
        self.font=Font(color=None)
        self.colorDict={
  
  'red':'FFFF3030','green':'FF008B00'}
        self.wb=load_workbook(test_path)
        self.ws=self.wb.active

    def rename(self,new_name):
        #给表格重命名
        self.ws.title=new_name
        self.wb.save(test_path)

    def GetSheetName(self):
        #获取所有表格名称
        return self.wb.get_sheet_names()

    def GetSheetByName(self,sheet_name):
        #通过表格名称获取表格
        self.ws=self.wb.get_sheet_by_name(sheet_name)
        return self.ws

    def GetCurrentSheetName(self):
        #获取当前表格名称
        return self.ws.title

    def GetCellContent(self,row_num,col_num):
        #获取单元格内容
        return self.ws.cell(row=row_num,column=col_num).value

    def WriteCellContent(self,row_num,col_num,content):
        #往指定的单元格里面写入内容
        self.ws.cell(row=row_num,column=col_num).value=content
        self.wb.save(test_path)

    def GetMaxRow(self):
        #获取最大行号
        return self.ws.max_row

    def GetMaxColumn(self):
        #获取最大列号
        return self.ws.max_column

其实本次框架中没有用到excel,但是我还是把他写上,方便大家使用;【对于数据的传递也可以使用excel来操作的】

  • 1.3GetConf.py
  • 这个模块是为了操作配置文件用的方法
#encoding=utf-8
import ConfigParser
from ProjectVar.Var import *

class ParsePageObjectRepositoryConfig(object):
    def __init__(self):
        self.cf=ConfigParser.ConfigParser()
        self.cf.read(page_object_repository_path)

    def getItemsFromSection(self,sectionName):
        items=self.cf.items(sectionName)
        return dict(items)

if __name__=='__main__':
    #调试代码
    p=ParsePageObjectRepositoryConfig()
    print p.getItemsFromSection('126mail_login')
    print p.getItemsFromSection('126mail_login')['loginpage.frame'].split('//')[1]
    print type(p.getItemsFromSection('126mail_login')['loginpage.frame'].split('//')[1])
  • 1.4log.py
  • 打印日志用的(这里可以不用这个,因为HTML就可以用)
#encoding=utf-8

import logging
import logging.config
from ProjectVar.Var import *
import os


#读取日志的配置文件
logging.config.fileConfig(project_path+
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值