ui自动化测试框架po框架

news/2024/10/11 15:23:20

一、po基本介绍

(1)PO框架是Page Object的缩写

(2)po框架:业务流程与页面元素操作分离的模式,可以简单理解为每个页面下面都有一个配置class, 配置class就用来维护页面元素或操作方法
(3)提高测试用例的可维护性、可读取性
(4)对比:传统的设计测试用例存在的弊端:
1.易读性差
2.复用性差
3.可维护性差
4.扩展性差

二、po框架自动化结构

1、先创建一个cms项目
在创建一个cofing包==存放所有配置文件信息(比如项目路径和数据,用例的路径)
       可以封装路径      
在创建一个Data包==放数据(测试数据)
        在Data包中创建一个TestData目录(放测试数据)
        测试环境的一些url地址和账号密码可以放在TestDta中       
在创建一个repot包==存放测试报告
        在repot包中创建一个Testrepot目录(存放报告)      
在创建一个public公共公开的包(存放一些功能用例)
        在public包中创建pages存放元素层流程层,element元存放(封装所有页面的公共方法,基类)
        在public包中创建utils包(处理公共类公共函数都存放在此)
               可以在utils中来读取pages中封装的登录的流程(封装读取ini文件或者EXCEL表格的工具类和工具函数       
在创建一个TestCase用例包用来存放用例
        编写测试用例
在创建一个run_all用来运行
        通过运行测试用例中封装好的用例在运行然后在repot中生成测试报告

三、实战

1、新建一个项目:命名po_ui

 2、新建包6个包

 3、按照包开始编辑内容

(1)conf包

新建一个模板 ini文件:

命名:cms_conf.ini 

并编辑内容

 

在conf中新建一个cms_path.py ,这个文件主要将项目路径定义;

导入os 模块:代码如下

import  os
bash_path=os.path.dirname(os.path.dirname(__file__))
print(bash_path) #项目路径
conf_path=os.path.join(bash_path,"conf")
print(conf_path)
data_path=os.path.join(bash_path,"data")
print(data_path)
report_path=os.path.join(bash_path,"report")
print(report_path)
testcase_path=os.path.join(bash_path,"testcase")
print(testcase_path)
public_path=os.path.join(bash_path,"public")
print(public_path)
pages_path=os.path.join(bash_path,"public","pages")
print(pages_path)
utils_path=os.path.join(bash_path,"public","utils")
print(utils_path)

 (2)data包中主要存放数据:

主要excel表格

 

 以上提供ini文件或excel提供数据,我们要去读取

(3)在utils包下:新建读取ini文件的方法

 

在dos窗口输入:  pip install configparser
因为读取ini文件要用到configparser
from configparser import ConfigParser   #导入configparser模块中ConfigParser类
from conf.cms_path import *          #从config模块导入所有的路径
import os
class Read_Ini(ConfigParser):   #定义了一个类,继承了ConfigParser类里面的方法和属性def __init__(self,filename):super(Read_Ini,self).__init__()  #继承了父类的构造方法self.filename=filenameself.read(self.filename)      #读取ini文件def read_data_ini(self,section=None, option=None):'''封装一个获取section对应的option里面的value值:return:'''value = self.get(section,option)   #通对应的option拿到value值return value
file = os.path.join(conf_path,"cms_conf.ini")
read= Read_Ini(file)
url = read.read_data_ini("test_data","url")
print(url)

 结果:http://cms.duoceshi.cn/manage/login.do

 在utils中新建一个read_excel  的模块

 用到xlrd  :pip  install  xlrd==1.2.0

 

import xlrd
from conf.cms_path import *
import os
class Read_Excel(object):def __init__(self,filename,sheet_Name):#先打开一个excel表格self.workbook=xlrd.open_workbook(filename)#进入到sheet页面self.sheetName=self.workbook.sheet_by_name(sheet_Name)def get_excel_data(self,row,col):'''封装了一个通过行和列来获取excel表格里面数据的工具方法'''value = self.sheetName.cell(row,col).valuereturn value
file = os.path.join(data_path,"data.xlsx")   #把data的路径和data.xls文件名进行拼接
excel = Read_Excel(file,"sj")
url = excel.get_excel_data(1,0)  #根据索引去取第二行第一列的url地址
print(url)

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/70239.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

大模型存储选型 JuiceFS 在关键环节性能详解

从去年开始,LLM大语言模型领域发展迅速、如 LLaMA、ChatGLM、Baichuan、Qwen 和 yi-model 等基础模型(Foundation Models)的数量显著增加。众多企业也开始基于这些基础模型做 post-training 的相关工作,以开发特定垂直领域的模型实现应用落地。 AI 模型的参数规模呈指数级增…

Rust 变量和基础类型

Rust 变量和基础数据类型 2024-03-13 类型,元组,数组,切片,动态数组,生命周期,动态大小,静态大小 Rust 通过 let 关键字声明变量, 变量默认是不可变 (只读) 的. let foo = 5; // 创建了一个不可变的变量 foo, 并绑定了 5 foo = 10; // 不能对 foo 重新绑定// 使用 mut 关键字创…

通义灵码 AI 程序员来了!丨阿里云云原生 9 月产品月报

《阿里云云原生每月动态》,从趋势热点、产品新功能、服务客户、开源与开发者动态等方面,为企业提供数字化的路径与指南。云原生月度动态 云原生是企业数字创新的最短路径。 《阿里云云原生每月动态》,从趋势热点、产品新功能、服务客户、开源与开发者动态等方面,为企业提供…

(python笔记)pandas 读取excel,如何保留文本数字类型

pandas读取Excel,默认转换文本类型数字为int类型,破坏原数据类型,用converters处理,保留文本类型数字 converters: dict[str, Callable] | dict[int, Callable] | None = ..., 使用方法:df = pd.read_excel(r"D:\测试文档\xxxx.xlsx", converters={"专业代…

蔡司库位架如何校准操作介绍

http://www.saben.com.cn/Article/cskwjrhxzc.html

三坐标探头种类及接针规则说明

http://www.saben.com.cn/Article/szbttzljjz.html

史陶比尔Stabli机器人维修小细节

在工业自动化领域,史陶比尔机器人以其卓越的性能和可靠性而著称。然而,即使是尖端的设备,也难免会遇到Stabli机械手故障和问题。对于机器人维护和修理,每一个小细节都显得至关重要。 一、观察 首先,我们需要具备敏锐的观察力。当史陶比尔机器人出现故障时,它可能会通过一…

23k star,推荐一款超强的开源工具--trivy

今天一件一款开源的镜像扫描工具,下面是扫描某个python镜像的示例:Trivy:全面的安全扫描工具 软件简介Trivy 是由 Aqua Security 开发的开源安全扫描工具,旨在帮助开发者和运维人员识别和修复各种环境中的安全问题。 Trivy 的名字来源于“Trigger”和“Envy”的组合,寓意其…