UI自动化测试框架:数据驱动
一、UI自动化框架介绍
二、框架的结构
1 配置信息:Conf
2 日志:Log
3 测试数据:TestData
4 测试逻辑封装:Action
5 测试框架的核心代码:TestScript
6 工程的全局封装:Util
7 PageObject (homepage 页面属于的结构) PageObject
目录结构如下:

三、代码说明
1、Conf\PageElementLocator.ini
[crm_login]
loginPage.username=xpath>//input[@id="txtUsername"]
loginPage.password=xpath>//input[@id="txtPassword"]
loginPage.loginbutton=xpath>//input[@type="submit"]
说明:
该文件的作用是实现定位表达式和程序的分离。让每个定位表达式有个名字,方便使用和管理。
loginPage.username 是自己给每个元素取的名字;
=xpath 表示用xpath定位;
> 用于分割;
//input[@id="txtUsername"]是xpath表达式
2、Conf\ProjVar.py
放置当前工程路径;配置文件路径;数据文件路径;测试数据Excel列。
代码举例:
import os # 当前工程的路径
proj_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # 配置文件的路径
PageElementLocator_file_path = os.path.join(proj_path,r"Conf\PageElementLocator.ini") # 数据文件的路径
test_data_file_path = os.path.join(proj_path,r"TestData\crm登录账号.xlsx") # "crm账号"sheet页名称
test_user_info_sheet = "crm账号"
# "crm账号"sheet页列表的名称
username_col = 1
password_col = 2
test_data_sheet_col = 3
execute_flag_col = 4
test_time_col = 5
test_user_info_result_col = 6 # "测试结果"sheet页名称
test_result_sheet = "测试结果"
3、Conf\Logger.conf
记录日志的配置文件
同时将生成的日志写入:Log\AutoTestLog.log 文件
4、PageObject\LoginPage.py
class loginPage():
def __init__(self,driver):
self.driver = driver def get_login_username(self):
input = read_ini_file_option(PageElementLocator_file_path,"crm_login","loginPage.username")
element = find_element(self.driver,input.split(">")[0],input.split(">")[1])
return element def input_login_username(self,username):
self.get_login_username().send_keys(username)
5、ScreenPics
在代码中,断言失败或执行失败时,将当前页面截图,根据执行时间生成路径并保存截图。

6、TestData
将需要测试的数据放到该文件夹下,根据excel中的数据执行自动化测试脚本。
7、TestScript
该文件夹下的文件执行具体的测试步骤和用例。
如:AddNewCaseTestScript.py 从TestData的excel中,读取测试数据,根据不同的测试数据创建case。
8、Util
放配置文件,如常用的 获取时间,创建文件夹,读写Excel等文件封装好,放到这里。使用时直接调用。
举例1:TakePic.py 截图配置文件
from Util.Dir import *
from selenium import webdriver def take_pic(driver):
file_path = make_time_dir()
pic_path = os.path.join(file_path, TimeUtil().get_chinesedatetime() + ".png")
try:
result = driver.get_screenshot_as_file(pic_path)
print(result)
except IOError as e:
print(e)
举例2:ParseConfig.py 解析配置文件PageElementLocator.ini
#encoding=utf-8
# 解析配置文件 import configparser def read_ini_file_all_sections(ini_file_path):
'''拿到所有的section'''
cf = configparser.ConfigParser()
cf.read(ini_file_path,encoding="utf-8")
return cf.sections() def read_ini_file_section_all_options(ini_file_path,section_name):
'''拿到指定的section的所有名称'''
cf = configparser.ConfigParser()
cf.read(ini_file_path, encoding="utf-8-sig")
return cf.options(section_name) def read_ini_file_option(ini_file_path,section_name,option_name):
'''拿到指定section名称的值'''
cf = configparser.ConfigParser()
cf.read(ini_file_path, encoding="utf-8-sig")
try:
value = cf.get(section_name,option_name)
except:
print ("the specific seciton or the specific option doesn't exit!")
return None
else:
return value
举例3:Dir.py 创建目录
def make_dir(dir_path):
if not os.path.exists(dir_path):
try:
os.makedirs(dir_path)
print("创建目录 %s 成功" %dir_path)
except:
print("创建目录 %s 不成功" %dir_path ) def make_time_dir():
date = TimeUtil().get_chinesedate()
dir_path = os.path.join(proj_path,"ScreenPics")
dir_path = os.path.join(dir_path,date)
dir_path = os.path.join(dir_path,str(TimeUtil().get_hour()))
make_dir(dir_path)
return dir_path
其他常用的方法可根据项目的需求进行封装:

UI自动化测试框架:数据驱动的更多相关文章
- 数据驱动 vs 关键字驱动:对搭建UI自动化测试框架的探索
UI自动化测试用例剖析 让我们先从分析一端自动化测试案例的代码开始我们的旅程.以下是我之前写的一个自动化测试的小Demo.这个Demo基于Selenium与Java.由于现在Selenium在自动化测 ...
- UI自动化测试框架(项目实战)python、Selenium(日志、邮件、pageobject)
其实百度UI自动化测试框架,会出来很多相关的信息,不过就没有找到纯项目的,无法拿来使用的:所以我最近就写了一个简单,不过可以拿来在真正项目中可以使用的测试框架. 项目的地址:https://githu ...
- 基于selenium+Python3.7+yaml+Robot Framework的UI自动化测试框架
前端自动化测试框架 项目说明 本框架是一套基于selenium+Python3.7+yaml+Robot Framework而设计的数据驱动UI自动化测试框架,Robot Framework 作为执行 ...
- 自动化测试中级篇——LazyAndroid UI自动化测试框架使用指南
原文地址https://blog.csdn.net/iamhuanggua/article/details/53104345 简介 一直以来,安卓UI自动化测试都存在以下两个障碍,一是测试工具Mo ...
- 简单Web UI 自动化测试框架 pyse
WebUI automation testing framework based on Selenium and unittest. 基于 selenium 和 unittest 的 Web UI自动 ...
- Ui自动化测试框架
为了提高我们的UI测试效率,我们引用Ui自动化测试框架,这里简单先描述一下,后续会详细补充: 了解一个测试框架,我们就需要了解一下源码,能看懂源码即可: 1.稳定先封装wait EC,电脑性能配置较好 ...
- UI自动化测试框架 ---TestCafe
UI自动化测试框架 ---TestCafe 官网文档链接: https://devexpress.github.io/testcafe/ https://devexpress.github.io/te ...
- UI自动化测试框架:关键字驱动+数据驱动
1. 关键字驱动框架简介 2. 工程结构说明 3. 工程代码实现 action 包 page_action.py business_process 包 case_process.py data_so ...
- 避免重复造轮子的UI自动化测试框架开发
一懒起来就好久没更新文章了,其实懒也还是因为忙,今年上半年的加班赶上了去年一年的加班,加班不息啊,好了吐槽完就写写一直打算继续的自动化开发 目前各种UI测试框架层出不穷,但是万变不离其宗,驱动PC浏览 ...
- APP的UI自动化测试框架及平台化探索
顾铮,10年+测试及测试开发相关经验,2014年加入京东,曾主导设计开发UI测试框架,参与CI测试平台建设,现负责iOS侧的工具,框架建设.在UI自动化,性能测试,单元测试方面有较深入研究,在App, ...
随机推荐
- Linux-源码安装软件
一.源码安装步骤 源码的安装一般由3个步骤组成:配置(configure).编译(make).安装(make install). 1.配置(configure) Configure是一个可执行脚本,它 ...
- langchain中的LLM模型使用介绍
简介 构建在大语言模型基础上的应用通常有两种,第一种叫做text completion,也就是一问一答的模式,输入是text,输出也是text.这种模型下应用并不会记忆之前的问题内容,每一个问题都是最 ...
- 《SQL与数据库基础》23. 读写分离
目录 读写分离 一主一从 准备 配置 双主双从 准备 配置 主库配置 从库配置 从库关联主库 主库相互复制 双主双从读写分离 本文以 MySQL 为例.以 MyCat 数据库中间件为例,通过 MyCa ...
- wget 命令的使用:HTTP文件下载、FTP文件下载--九五小庞
1. wget 命令简介与安装wget是用于在命令行终端下载网络文件的开源免费的命令工具,支持 HTTP/HTTPS.FTP/FTPS 协议的下载.wget 与 curl 相似,curl 可以理解为是 ...
- Solidity-变量和数据类型[复合类型_1]
复合类型的数据包括:array(数组).struct(结构体)和mapping(映射),其中array和struct也称为引用类型. 复合类型 数组(array) 数组(array)是一种用于存储相同 ...
- Linux安装达梦数据库DM8
1.简介描述 DM8是达梦公司在总结DM系列产品研发与应用经验的基础上,坚持开放创新.简洁实用的理念,推出的新一代自研数据库.DM8吸收借鉴当前先进新技术思想与主流数据库产品的优点,融合了分布式.弹性 ...
- 使用C#发送邮件支持 Implicit SSL
安装Package: Install-Package AIM 使用下面的代码发送: class Mail { private static string mailAddress = "{yo ...
- WebStrom提交代码到GitLab报错Error: Cannot find any-observable implementation nor global.Observable.
项目场景: 前端代码完成后,提交代码 问题描述 提交代码到GitLab时,因自动检测机制导致项目提交失败 C:\D\insper\inspur_works\custom-manage-front\no ...
- 「ceoi 2009」harbingers
link. 朴素 dp 大约就是 \(f_x=f_y+v_x\times(d_x-d_y)+s_x\),\(y\) 是 \(x\) 的祖先.这个式子可以斜率优化,在以 \(d_y\) 为横坐标,\(f ...
- Teamcenter RAC 开发之《AbstractRendering》
背景 关于Teamcenter RAC 客制化渲染表单,做一两个有时间做还是可以的,问题是大批量做的时候就会存在很多重复的代码 例如: 1.定义很多 TCProperty,JTextFiled,ite ...