我的第一份UI自动化测试框架

本文介绍了作者的第一份UI自动化测试框架,基于Python、selenium和unittest单元测试框架,采用PO模型。框架包括base、business、case等十大模块,详细阐述了从配置文件、页面元素操作到测试用例编写的过程。
摘要由CSDN通过智能技术生成

我的第一份UI自动化测试框架

一、框架介绍:

1、本框架使用Python开发语言,结合selenium,unnitest单元测试框架,再采用PO模型进行封装,整个框架结构一共包含了十大模块,如下图所示:
在这里插入图片描述
1、base层:基础层,存放我们的基础定位元素的方法,一共八种常用的方法;
2、business层:业务层,存放我们业务功能处理;
3、case层:存放我们测试用例;
4、congfig层:存放元素的定位信息;
5、handle层:存放页面的操作信息;
6、img层:存放图片信息;
7、log层:存放日志信息;
8、page层:存放页面信息;
9、report层:存放测试报告信息;
10、until层:存放工具类信息;

二、框架搭建

1、本框架配置文件采用的是ini文件存储,所以第一步是在until层,创建读取ini文件:

    # 定义全局属性
    def __init__(self, file_name=None, node=None):
		# 定义默认文件读取
        if file_name is None:
            file_name = r'C:\Users\Mrlin\PycharmProjects\Cost_management_system\config\YuanGon.ini'
		# 定义默认ini文件头读取
        if node is None:
            self.node = 'RegisterElement'
        else:
            self.node = node
            
        self.cf = self.getIni(file_name)

    # 读取ini文件
    def getIni(self, file_name):
        cf = configparser.ConfigParser()
        cf.read(file_name, encoding='UTF-8')
        return cf

    # 获取ini文件的数据值
    def getMessage(self, node, key):
        data = self.cf.get(node, key)
        return data

2、写好读取ini配置文件之后,开始进行第二步,在base层定义我们selenium操作页面元素的方法:

    def __init__(self, driver):
        self.driver = driver

    def get_element(self, file_path, note, key):
        # 读取ini文件相关元素配置信息
        read_ini = Read_ini(file_path)
        data = read_ini.getMessage(note, key)
        # 规定配置文件定位信息写法,>左边为定位方法、右边为定位信息
        by = data.split('>')[0]
        value = data.split('>')[1]

    # 八大定位方式
        try:
            if by == 'id':
                return self.driver.find_element_by_id(value)
            elif by == 'name':
                return self.driver.find_element_by_name(value)
            elif by == 'className':
                return self.driver.find_element_by_class_name(value)
            elif by == 'xpath':
                return self.driver.find_element_by_xpath(value)
            elif by == 'link_text':
                return self.driver.find_element_link_text(value)
            elif by == 'partial_link_text':
                return self.driver.find_element_partial_link_text(value)
            elif by == 'css_selector':
                return self.driver.find_element_css_selector(value)
            else:
                return self.driver.find_element_tag_name(value)
        except:
            return None

3、两份文件编写完成后,就可以在开始第三步,再config层编写我们的定位元素配置信息了:

;登录页面相关定位信息
;[]内内容为node,=号左边为key,右边内容根据‘>’拆分

[LoginElement]
;选择账号登录
salecard_select = xpath>//span[text()='账号登录']
;用户名
salecard_login
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值