自动化框架如何搭建?让10年阿里自动化测试老司机帮你搞定!自动化测试脚本怎么写?

一、何为框架?何为自动化测试框架?

无论是日常技术交流,还是在自动化测试实践中,经常会听到一个词叫:框架。之前对“框架”这个词知其然不知其所以然。现在看过一些资料以及加上我自己的一些实践有了我自己的一些看法。

那么:什么是框架?

在自动化实践过程中,框架就是一个半成品,框架是指对应用系统的部分设计或实现系统的部分结构。

举个栗子:selenium是不是一个框架?Yes,它是一个框架,那么这个框架能不能对一个指定的系统比如淘宝做自动化测试?答案是不能的,我们还必须使用这个框架封装好的方法去实现淘宝的业务逻辑。所以说框架就是封装好的一个半成品。

那么:什么是自动化测试框架?

自动化测试框架就是:为了对一个指定的系统做自动化测试而封装的一个半成品,自动化测试攻城狮可以调用这个半成品封装好的方法去实现一个指定系统的自动化测试!

还是不明白?没关系,下面一张图道破玄机!下面这个照片框架请问是不是一个半成品?不是一个完整的照片?但是它又是整个照片的一部分!

二、根据驱动模式不同自动化测试框架分为四种模式。

(1) 数据驱动框架

(2) 关键字驱动框架

(3) 数据驱动+关键字驱动混合型驱动框架

(4) 行为驱动(lettuce)测试框架

三、自动化测试框架如何实现(数据驱动框架)

1.自动化测试框架最核心的是分层模式和封装:

分层模式:一般的情况下,自动化测试框架都会分三层:BasePage基础页封装层,PO模型层,TestCase测试用例层。这三层的关系为:TestCase测试用例层调用PO模型层的元素定位和元素操作,PO模型层调用BasePage基础页封装层。如下图:

除了以上框架核心三层外还包括:日志处理模块,ini配置文件处理模块,数据驱动模块,jenkins持续集成模块等。

2.自动化测试框架代码结构,如下图:

其中:

base文件夹为BagePage封装层。此文件夹下有基础方法封装base.py和基础单元测试封装base_unit.py。

common为公共的方法封装层。此文件夹下有配置文件工具:config_util.py,Excel读写工具:excel_util.py,日志处理:logger_util.py文件。

data为excel数据文件。都是数据文件

log为生成的日志文件。

pageobject为PO模型层。

report为生成的测试报告文件夹

testcase为测试用例层。

all.py为总执行文件。

import HTMLTestRunner
import unittest
from common.config_util import get_project_path, get_configif __name__ == '__main__':test_dir = get_project_path()+"testcase"dis=unittest.defaultTestLoader.discover(test_dir,pattern="*.py")#now = time.strftime("%Y-%m-%d-%H_%M_%S",time.localtime(time.time()))#filepath = get_project_path()+"/report/"+get_config("reportSet","reportFileName")+now+".html"filepath = get_project_path()+"/report/report.html"fp = open(filepath,"wb")runner=HTMLTestRunner.HTMLTestRunner(stream=fp,title="携程网自动化测试报告",description="报告详情如下")runner.run(dis)fp.close()

config.ini为全局配置文件。

#浏览器选择(不区分大小写,谷歌:Chrome;火狐:Firefox;IE:Ie;)
[Browser]
browserName = Chrome#被测项目地址设置
[testUrl]
url=https://trains.ctrip.com/TrainBooking/SearchTrain.aspx####框架日志设置
#(分别为日志文件前缀,文件日志级别,文件日志格式,控制台日志级别,控制台日志格式)日志级别共五级(不区分大小写,默认为INFO):DEBUG,INFO,WARNING,ERROR,CRITICAL
[logSet]
LogFileName = log_
fileLogLevel = INFO
fileLogFormatter = [%(asctime)s] %(filename)s->%(funcName)s line:%(lineno)d [%(levelname)s] %(message)s
consoleLogLevel = INFO
consoleLogFormatter = [%(asctime)s] %(filename)s->%(funcName)s line:%(lineno)d [%(levelname)s] %(message)s#框架报告设置(报告文件名称设置)
[reportSet]
reportFileName = report_

四、当前自动化框架和市面上不同类型的对比。

1、当前框架使用的是三层框架:

第1层、base文件夹是基础封装层,

第2层、pageobject是页面封装层(包括元素定位和动作),

第3层、测试用例层。其中第2层继承第1层的基础层,第3层调用第2层的动作。

2、其他不同的框架类型

(1)将第2层中的元素定位写入ini配置文件中。然后读取。

(2)分四层:把第2层分解成两层,分别是元素定位层、动作层。

五、总结

每个公司,每个自动测试工程师封装的自动化框架都不一样,没有一成不变的自动化测试框架,也没有最好的自动化测试框架,只有最合适的自动化测试框架,最终总结出:

如果你觉得此文对你有帮助,如果你对此文有任何疑问,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣请拉到最上面关注笔者的名字!

  自动化测试相关教程推荐:

2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂!!_哔哩哔哩_bilibili

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibili

测试开发相关教程推荐

2023全网最牛,字节测试开发大佬现场教学,从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili

postman/jmeter/fiddler测试工具类教程推荐

讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程,学jmeter接口测试一套教程就够了!!_哔哩哔哩_bilibili

2023自学fiddler抓包,请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程!!_哔哩哔哩_bilibili

2023全网封神,B站讲的最详细的Postman接口测试实战教学,小白都能学会_哔哩哔哩_bilibili

  总结:

 光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!

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

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

相关文章

测试开发体系介绍——测试体系介绍-L1

目录: 软件测试基础概念 软件测试:软件测试作用:软件缺陷:软件测试原则:软件测试对象:测试用例软件开发流程 软件:软件生命周期:软件开发流程:瀑布模型:瀑布模型优缺点敏捷开发模型: XP - 极限编程:SCRUM:DevOps:DevOps 生命周期:DevOps 对发…

金蝶云星空业务对象添加网控设置

文章目录 金蝶云星空业务对象添加网控设置排查是否已经网控设置网控设置 金蝶云星空业务对象添加网控设置 排查是否已经网控设置 网控设置

这6点电缆故障测试仪的使用方法为什么这么重要?

电缆故障检测一直是电力检测工人定期需要做的一件事,通过定期对电缆线的检测,可以排除电缆线的一些故障,从而让电缆线可以正常工作,方便千家万户!然而电力检测工人用来检测电缆故障的设备,通常就是电缆故障…

如何将采购时间从几天缩短为几小时?

从事采购工作时,采购需要多长时间是面临的常见挑战之一。 采购是供应链中的一个环节,大家都不想看到整个流程被拖慢,但很多时候,事情往往向超出控制范围的方向发展。不过,企业可以通过多种方式简化采购和管理整个采购…

【JavaWeb学习笔记】14 - 三大组件其二 Listener Filter

API文档JAVA_EE_api_中英文对照版 Listener 一、监听器Listener 1. Listener监听器它是JavaWeb的三大组件之一。 JavaWeb的三大组件分别是: Servlet程序、Listener监听器、Filter过滤器 2. Listener是JavaEE的规范,就是接口 3.监听器的作用是,监听某…

Java 虚拟机中的内存结构

1 内存结构 1.1 程序计数器 1.1.1 定义 Program Counter Register 程序计数器(寄存器) 作用:是记住下一条 jvm 指令的执行地址 特点: 是线程私有的(每个线程独有自己的一份)不会存在内存溢出 1.1.2 作…

基于车轮安装MEMS IMU的航迹推算算法研究

本文由来:前一篇文章“零速更新(ZUPT)辅助INS定位”,并通过开源方案ZUPT-aided-INS进行了算法验证。在验证过程中,意识到在进行多源传感器融合算法中,利用载体自身运动信息进行约束修正非常重要,因为这不需要额外增加传…

前端案例—antdDesign的Select多选框组件加上全选功能

前端案例—antdDesign的Select多选框组件加上全选功能。 实现效果如下: Select 组件里有这个属性,可以利用这个对下拉菜单进行自定义。 const handleChange (e, value) > {setSelectState(e.target.checked)let arr productOptions?productOption…

【开源工程及源码】超级经典开源项目实景三维数字孪生智慧港口

智慧港口可视化平台,旨在实现对港口运营的全面监测、智能管理和优化决策。飞渡科技利用数字化、模拟和仿真的技术,通过互联的传感器和设备,实现实时数据的采集、传输和分析,将港口内外的复杂数据以直观、易懂的方式呈现&#xff0…

Qt配置opencv,cmake编译参考笔记,已成功

Qt版本:Qt5.14.2 opencv:4.5.4(不要用4.5.5!!很坑别问我为什么知道) cmake:下的最新版本 前言:为什么非得要用cmake编译呢?跳过cmake不好吗? 之前用的opencv…

服务熔断(Hystrix)

服务雪崩 多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其他的微服务,这就是所谓的“扇出”,如果扇出的链路上某个微服务的调用响应时间过长,或者不可用,对微服务A的…

c++打开网页

1.使用ShellExecute 效果图: 相关代码: void Open_url::on_pushButton_clicked() {QString path1 "explorer.exe";QString urlui->lineEdit->text();ShellExecute(NULL, L"open", path1.toStdWString().c_str(), url.toStdWString().c…

Python匹配文件模块的实战技巧

更多资料获取 📚 个人网站:ipengtao.com 在Python中,文件匹配是许多应用中常见的需求,例如文件管理、数据处理等。本文将深入探讨Python中用于文件匹配的模块,包括glob、fnmatch和os.path等,通过丰富的示例…

Keil5软件仿真 定时器互补通道 波形输出(Logic Analyzer)

步骤一:管脚配置确认。 ①配置定时器的管脚模式为复用推挽输出模式(GPIO_MODE_AF_PP)!!!,注意:复用开漏模式软件仿真时无波形。 步骤二:编译程序。 ①点击编译按钮。 …

(Mac上)使用Python进行matplotlib 画图时,中文显示不出来

【问题描述】 ①报错确缺失字体: ②使用matplotlib画图,中文字体显示不出来 【问题思考】 在网上搜了好多,关于使用python进行matplotlib画图字体显示不出来的,但是我试用了下,对我来说都没有。有些仅使用于windows系…

小型洗衣机什么牌子好又便宜?内衣裤洗衣机十大排名推荐

作为一个上班族,每天回到家中真的不愿意再动了,市面上也越来越多懒人福利神器,而内衣洗衣机可以称得上是人类最幸福的小家电,它不仅可以释放我们的双手,而且还比我们自己手洗得干净,功能和清洁力都比我们传…

Ubuntu 常用命令之 zip 命令用法介绍

📑Linux/Ubuntu 常用命令归类整理 Ubuntu系统下的zip命令是用来压缩文件的。这个命令可以将一个或多个文件或者目录压缩成一个.zip文件,也可以将整个目录树压缩成一个.zip文件。 zip命令的基本格式 zip [选项] [压缩文件名] [要压缩的文件或目录...]z…

选择移动订货系统源码的四大原因

移动订货系统需要选择源码支持的厂家,有以下四个原因,其中第四个是比较重要的,大家点个关注点个赞,我们接着往下看。 1.可自行定制:支持源码的移动订货系统可以根据企业的具体需求进行定制开发,满足企业特定…

电脑完全重装教程——原版系统镜像安装

注意事项 本教程会清除所有个人文件 请谨慎操作 请谨慎操作 请谨慎操作 前言 本教程是以系统安装U盘为介质进行系统重装操作,照着流程操作会清除整个硬盘里的文件,请考虑清楚哦~ 有些小伙伴可能随便在百度上找个WinPE作为启动盘就直接…

运维实施工程师计算机基础

目录 一.运维实施工程师需要具备的知识 1.1.运维工程师、实施工程师是啥? 1.2. 运维工程师、实施工程师做些啥? 1.3.运维工程师、实施工程师需要具备啥技能? 二.计算机的组成 2.1.简介 2.1.1.CPU(中央处理器) 2.…