多测师肖sir___ui自动化测试po框架讲解版

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

‘’'1、先创建一个cms项目
(1)创建第一个conf包存放所有配置文件信息(比如项目路径和数据,用例的路径)
可以封装路径
‘‘ini是一种配置文件
在ui自动化测试中配置文件的种类
ini、Excel、.py、yaml、txt’’’
在创建第二个Data包
放数据(测试数据)
(2) 在data包中创建一个TestData目录(放测试数据)
测试环境的一些url地址和账号密码可以放在TestDta中
(3)在创建第三个report包==存放测试报告
在report包中创建一个Testrepot目录(存放报告)
(4)在创建第四个public公共公开的包(存放一些功能用例)
在public包中创建pages存放元素层流程层(封装所有页面的公共方法,基类)
在public包中创建utils包(处理公共类公共函数都存放在此)
可以在utils中来读取pages中封装的登录的流程(封装读取ini文件或者EXCEL表格的工具类和工具函数
(5)在创建第五个testcase用例包用来存放用例
编写测试用例
(6)在创建第六个run包用来运行
通过运行测试用例中封装好的用例在运行然后在repot中生成测试报告
框架的思想:把整个用例结构
在这里插入图片描述

三、框架的编写

1、先conf包中新建cms_path将项目中的项目包的路径都打印出来

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

2、在conf包中新建一个cms_conf.ini的文件:
将cms中url、账号、密码写上

[test_data]
url=http://cms.e70w.com/manage/login.do
username=admin
pwd=123456

新建好了ini文件,就要读取ini文件
3、在public中utils中新建 read_conf.py来读取ini文件

from   configparser import  ConfigParser
from  conf.cms_path import *class   Read_Tni(ConfigParser):def  __init__(self,filename):super(Read_Tni,self).__init__()self.filename=filenameself.read(self.filename)def read_data_ini(self,section=None,option=None):value=self.get(section,option)return  value
file_path=os.path.join(conf_path,'cms_conf.ini')
read=Read_Tni(file_path)
url=read.read_data_ini('test_data','url')
# print(url)
username=read.read_data_ini('test_data','username')
# print(username)
pwd=read.read_data_ini('test_data','pwd')
# print(pwd)

4、在data包下新建一个excel 表格,填写信息如下
(1)打开data存放地址
在这里插入图片描述

(2)xlsx中填写的内容
在这里插入图片描述
写好以上内容,进行保存。有了excel表格就要读取excel中的内容

==================================
5、我们要读取excel表格:在util中新建read_excel.py文件,通过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):self.wookbook=xlrd.open_workbook(filename)self.sheetname=self.wookbook.sheet_by_name(sheet_name)def  get_excel_data(self,row,col):value=self.sheetname.cell(row,col).valuereturn value
if __name__ == '__main__':file=os.path.join(data_path,'data.xlsx')dx=Read_Excel(file,'cms_data')url=dx.get_excel_data(1,0)print(url)username=dx.get_excel_data(1,1)print(username)pwd= dx.get_excel_data(1, 2)print(pwd)

===================================
在public中pages包下新建两个:BasePages和pages_elemnet 两个py文件:
BasePages包:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何用GPT/GPT4进行AI绘图?

详情点击链接:如何用GPT/GPT4进行AI绘图? 一OpenAI 1.最新大模型GPT-4 Turbo 2.最新发布的高级数据分析,AI画图,图像识别,文档API 3.GPT Store 4.从0到1创建自己的GPT应用 5. 模型Gemini以及大模型Claude2二定制自…

QT笔记 - 添加项目到版本控制系统 - Git

说明 Git可以在很小的磁盘占用下保存当前项目的多个不同版本,且极为方便切换到任意版本。这对Qt项目非常实用。下面介绍如何为项目添加Git版本控制系统。 下载Git 操作系统若没有安装Git,需要安装。 下载​​​​​​​ 创建项目时添加项目到Git 安…

前端秋本名学习笔记

css-html 浏览器:FireFox、Safari苹果、Chrome谷歌、IE W3C制定html规则、OpenSSL加密、html超文本标记语言 IDE:HhuilderX、vscode !DOCTYPE html文档声明、html(lang”zh-CN”)、head、body、meta元信息、title标签名、base(target)、link(rel类型、hr…

HCIA的网络地址转换NAT

NAT:网络地址转换 功能: 1.将大量的私有地址转换成公有地址(节约IP地址) 2.将一个IP地址转换成另一个IP地址(公有的)(增加内部网络设备的安全性):比如有一个内网&#xf…

SVN账户管理

1.新增用户 sudo htpasswd -c /etc/svn-auth-users test002 2.删除用户 sudo htpasswd -D /etc/svn-auth-users test002 3.修改密码 sudo htpasswd -d /etc/svn-auth-users test002

(1)(1.13) SiK无线电高级配置(七)

文章目录 前言 17 技术细节 18 名词解释 前言 本文提供 SiK 遥测无线电(SiK Telemetry Radio)的高级配置信息。它面向"高级用户"和希望更好地了解无线电如何运行的用户。 17 技术细节 在评估该无线电是否符合当地法规时,了解其使用的技术可能会有所帮…

Python学习从0到1 day4 python格式化输出和输入方法

其实我不是我,我是青山辽阔 ——24.1.14 一、百分号形式的格式化输出 1.普通输出 #1.定义一些变量 name 陈浩南 age 25 address 广州市天河区#2.变量的输出(普通输出) print(name) print(age) print(address)#3.Python中,还允…

论文阅读:Attention is all you need

【最近课堂上Transformer之前的DL基础知识储备差不多了,但学校里一般讲到Transformer课程也接近了尾声;之前参与的一些科研打杂训练了我阅读论文的能力和阅读源码的能力,也让我有能力有兴趣对最最源头的论文一探究竟;我最近也想按…

Vue2-Vuex中State、Mutation及mapState辅助函数、mapMutations的基本用法

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 个人笔记,仅供参考。 state:全局共享的响应式数据 mutation:声明修改全局响应式数据…

分数1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 求和

要求&#xff1a;计算1/1-1/21/3-1/41/5 …… 1/99 - 1/100 的值&#xff0c;打印出结果。 法一&#xff1a; 从要求&#xff0c;我们可以看出&#xff0c;计算内容分为正数和负数。对他们求和&#xff0c;可以通过分别求和再相加。 #include<stdio.h> int main() {fl…

9.云原生存储之ceph在k8s中应用及问题处理

云原生专栏大纲 文章目录 ceph应用场景ceph应用在k8s集群外使用块设备ceph客户端配置创建块挂载使用删除pool 在k8s集群内使用块设备创建块池和StorageClass使用存储 块存储映射问题处理问题现象事件分析csi-rbdplugin pod日志分析问题小结CentOS 7 编译安装 nbd 模块nbd内核模…

Chapter 9 运算符重载

目的&#xff1a;运用运算符重载 &#x1f353;&#x1f353;&#x1f353;&#x1f353;&#x1f353;&#x1f353;&#x1f353;&#x1f353;&#x1f353;&#x1f353;&#x1f353;&#x1f353;&#x1f353;&#x1f353;&#x1f353;&#x1f353;&#x1f353;&…

go语言将cmd stdout和stderr作为字符串返回而不是打印到控制台

go语言将cmd stdout和stderr作为字符串返回而不是打印到控制台 1、直接打印到控制台 从 golang 应用程序中执行 bash 命令&#xff0c;现在 stdout 和 stderr 直接进入控制台&#xff1a; cmd.Stdout os.Stdout cmd.Stderr os.Stderrpackage mainimport ("fmt"…

MySQL8密码重置——Windows环境

1. 环境变量配置 加入操作会方便点&#xff0c;不用每次都要进入其安装目录 Path环境变量加入&#xff1a;%MYSQL_HOME%\bin 2. 停掉服务及服务安装 3. 创建my.ini MySQL安装目录&#xff08;C:\Program Files\MySQL\MySQL Server 8.0&#xff09;下创建my.ini文件 my.ini文…

Python函数,函数的定义和调用,函数的参数、返回值及类型、嵌套、作用域

函数是一段可重复使用的代码块&#xff0c;用于执行特定的任务。在Python中&#xff0c;函数可以通过定义和调用来使用。 函数的定义使用关键字def&#xff0c;后面跟着函数名、括号以及冒号。函数体缩进在冒号之后的下一行开始&#xff0c;用于执行特定的功能。函数的定义通常…

Chrome 插件 V3 版本 Manifest.json 中的内容脚本(Content Scripts)解析

内容脚本&#xff08;Content Scripts&#xff09; 指定在用户打开某些网页时要使用的 JavaScript 或 CSS 文件。 内容脚本是在网页环境中运行的文件。通过使用标准文档对象模型 (DOM)&#xff0c;开发者能够读取浏览器所访问网页的详情、更改这些网页&#xff0c;并将信息传递…

有哪些品牌的超声波清洗机是值得入手的?超声波清洗机推荐

作为一个既对生活品质有追求&#xff0c;又只想躺平的懒人&#xff0c;一直在努力尝试让轻松的生活少一点绊脚石&#xff0c;而其中最重要的一个&#xff0c;就是清洗眼镜清洗日常生活的一些小物件&#xff0c;讲真&#xff0c;洗这些东西有时候就跟下班回家的KPI一样。白天不累…

SearchInsertPosition【搜索插入位置】

给定的数组已经排序&#xff0c;找到第一个不小于给定值就可以了。 public int searchInsert(int[] nums, int target) {for(int i0;i<nums.length;i){//数组中存在&#xff0c;返回下标if(nums[i] target){return i;}//数组中不存在&#xff0c;需插入到数组中间位置情况…

《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(6)-Fiddler状态面板详解

1.简介 按照从上往下&#xff0c;从左往右的计划&#xff0c;今天就轮到介绍和分享Fiddler的状态面板了。 2.状态面板概览 Fiddler的状态面板概览&#xff0c;如下图所示&#xff1a; 3.状态面板详解 Fiddler底端状态栏面板详解&#xff0c;如下图所示&#xff1a; 3.1Captu…

重新分区扩展C盘

电脑 – 管理 使用第三方工具&#xff1a;DiskGenius数据恢复及分区管理软件 要选择完成后重启 &#xff0c;如果这里忘记勾选&#xff0c;后面也会再次提醒并默认勾选重启 "调整后容量"是指图片上显示的非C盘之外的盘符的容量&#xff0c;这里指E盘大小 上面已经利…