对于如何设计一个自动化框架之前,首先得清楚什么是自动框架,设计时有哪些是需要注意的,然后该怎么去做?

什么是自动化测试框架?

1、什么是框架?

特指为解决一个开放性问题而设计的具有一定约束性的支撑结构。在此结构上可以根据具体问题扩展、安插更多的组成部分,从而更迅速和方便地构建完整的解决问题的方案。框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法。也就是说框架本身不解决特定的问题,它是通过扩展的各种组件或者工具来解决问题,并且它可以方便的添加或者修改部分组件的功能。

2、什么是自动化测试框架?

什么是自动化测试框架,我们拆分来看的话,其实就是三个方面,自动化、测试、框架,什么是框架上面说了,还有就是他能执行测试,而且还是自动化的,所以框架的各个组件的主要功能就是围绕着如何自动化如何执行测试展开的。

这里可以把框架的各个功能称作模块,那我们来看看都需要那些模块,需要一个基础模块,主要是怎么实现脚本编写,管理模块,主要的行为是持续集成,定时执行、case管理,统计模块,主要是发送测试报告,统计分析。

那总结一下自动化测试框架的定义就是:把在自动化测试过程中用到的一些功能或者工具,分装成各个模块,包括如何进行自动化脚本编写以及分层功能的基础模块,进行持续集成、定时任务的管理模块,发送测试报告、进行测试结果统计分析的统计模块等,将这些模块组成一套可重用的骨架。

其次就是自动化测试框架的设计原则

通用性:能够在各种各样的系统和平台都能够使用

易维护性:能够把我们的数据、用例、框架的实现进行独立的维护,能够在实现完善的过程,快速的定义到维护的点,而不对框架的其他功能造成影响

定时处理:能够在指定的时间执行

持续集成:当被测程序和测试代码有更新能够自动执行

调试:可调试行强

测试结果:测试报告、测试数据的统计分析

框架的设计思想

可以把自动化测试框架主体分为两部分,一个是内部框架,一个是外部框架,内部框架就是我们自己实现的测试框架代码,外部框架就是抛开我们实现的核心代码,要达到自动化测试框架设计原的一些内容时用到的一些第三方工具。

外部框架

主要是指以webdriver为核心,辅以外部第三方框架和工具。用以实现持续集成、自动部署、脚本执行、远程调用、报告优化、邮件发送导等功能性框架,实现自动化框架设计原则的一些外围的组件。

内部框架

也就是分层框架,目的在于更好的优化和管理测试用例,更便捷的进行数据、元素、脚本的维护和更快速的创建新脚本

自动化测试框架设计思路

1、通用的外部框架实现逻辑

maven或者tox-自动编译,执行TestNG或junit,集成邮件发送等

TestNG或Junit、pytest,调用webdriver或者发送请求的方法,执行自动化测试用例,规范自动化测试脚本

selenium脚本或者接口用例脚本

reportNG或者allure报告优化模板

main 自动以html邮件通知或者Jenkins发送邮件

2、内部框架层架框架-也就是代码结构优化,根据具体的业务和需求可以大致分为以下几层,有时并不需要下面所有的层次,选取合适自己业务测试的就行。

TestCase层:执行的用例脚本

Task层:公共业务分装,是其他的项目不需要的,只和当前项目相关,比如公共登陆、搜索等业务

utils层:与业务无关的方法,比如数据驱动-也就进行数据文件的读写、浏览器操作、元素定位方法等进行封装

page层或po层:页面层,页面层主要维护某一个页面的所有元素,对页面的操作、对元素的操作以及和其他页面的交互,业务其实就是一个元素到另一个元素或者一个页面到另一个页面,这就和task层有点重复一般有一个就可以了。

element层:公共元素或者组件的维护,或者自定义组件封装

data层:数据存储properties层:配置文件、全局变量

从上述内容可以了解到该从哪下手去设计一个框架,希望可以给大家带来好的建议。

框架有几层_如何设计一个自动化框架相关推荐

  1. 常用RPC框架及如何设计一个RPC框架

    一天学会的Java基础课程,整整300集 拿出来分享给大家!拿走不谢!手把手教学,学会轻松就业_哔哩哔哩_bilibili 常用RPC远程调用框架有哪些? httpclient.grpc.dubbo. ...

  2. 如何设计一个RPC框架?

    首先,我们需要知道什么是RPC框架? RPC(Remote Procedure Call)叫作远程过程调用,它是利用网络从远程计算机上请求服务,可以理解为把程序的一部分放在其他远程计算机上执行.通过网 ...

  3. pytest+yaml设计接口自动化框架过程记录(一步一步记录如何设计,完结撒花),源码提供,视频教程

    pytest+yaml设计接口自动化框架过程记录 第三代框架使用教程,该框架比现在这个完善了很多 框架简介 框架运行演示和功能介绍视频 pytest+yaml框架环境配置和使用教程 0.去年也写了一个 ...

  4. python什么框架写游戏好_免root修改器框架,免root框架大全,游戏框架免root:《游戏框架》 用python做游戏用什么框架-南开游戏网...

    <游戏框架> 用python做游戏用什么框架 2020-11-25 17:37:36 广告 游戏作为一种分类框架 一个好的网计作品就必然有一个号的网页,那么我们来分析一下,在网页设计过程中 ...

  5. python持久层框架_想设计一个Python的持久层框架

    框架定义在持久层,除提供ORMapping功能外加点权限控制.ORMapping的代码学习iBatis和ActiveRecord的做法,可使用任意一种,想象中xml应该这样子定义 select c1, ...

  6. symfony api 错误响应_如何设计一个牛逼的 API 接口

    在日常开发中,总会接触到各种接口.前后端数据传输接口,第三方业务平台接口.一个平台的前后端数据传输接口一般都会在内网环境下通信,而且会使用安全框架,所以安全性可以得到很好的保护.这篇文章重点讨论一下提 ...

  7. ehcache 清除缓存_如何设计一个本地缓存

    作者:ksfzhaohuihttp://my.oschina.net/OutOfMemory/blog/3133013 前言 最近在看Mybatis的源码,刚好看到缓存这一块,Mybatis提供了一级 ...

  8. 如何抓取一个网站的分页_如何设计一个吸引人的网站

    做网站的好处就是能够利用网站来展示推广产品,提升公司形象,为公司的发展提供有效的平台,还能扩大销售渠道.但是,想要建设一个吸引人的网站是要求非常高的,今天八爪网就来教大家如何设计一个吸引人的网站,一起 ...

  9. java设计一百亿的计算器_请设计一个一百亿的计算器

    首先要明白这道题目的考查点是什么, 一是大家首先要对计算机原理的底层细节要清楚.要知道加减法的位运算原理和知道计算机中的算术运算会发生越界的情况, 二是要具备一定的面向对象的设计思想.首先,计算机中用 ...

最新文章

  1. centos7 nextcloud docker 自测部署安装
  2. JVM Attach机制实现
  3. python 接收邮件服务器地址_Python 用IMAP接收邮件
  4. 3 MIGO采购订单收货报错-表T169P,表目S001不存在
  5. HTML5缓存和GPS定位
  6. python访问序列元素的编号用什么括起来_【填空题】序列元素的编号称为 ,它从 开始,访问序列元素时将它用 括起来。...
  7. 【Linux】 CentOS 7 安装 RabbitMQ
  8. 产品开发管理方法工具流程 pdf_HR必备薪酬和绩效管理方法论、工具、案例
  9. C# 抖音无水印视频下载教程,教你你如何抓取抖音无水印接口
  10. python项目运行的软硬件环境_开发时的软硬件环境和运行时的软硬件环境分别是什么...
  11. 考研英语 - word-list-17
  12. QQ推广,QQ在线代码
  13. 老男孩教育侵权之后使出了八大“绝招“,撒谎水平爆炸!真相在这里!
  14. iOS 仿YY直播心形动画 烟花动画
  15. FCAA答题练习收集记录
  16. 【ChatGPT4】王老师零基础《NLP》(自然语言处理)第一课
  17. yml配置文件中${}的使用
  18. 从零开始学习CSS(3)
  19. 家庭财务管理系统(C++面向对象课程设计附课设报告)
  20. kali安装中文拼音googlepinyin之坑

热门文章

  1. 把代码放到服务器文件夹,怎么将本地代码传到云服务器
  2. ApplicationStartedEvent 与 ContextStartedEvent 有区别吗?
  3. 用 IDEA 看源码的正确姿势!你掌握了吗?
  4. 如何排查系统的性能瓶颈点?
  5. 谷歌 Java 编程风格指南
  6. 什么是NIO?NIO的原理是什么机制?
  7. 那些做中台的程序员,后来都怎么样了?
  8. 重磅!Github 开放无数量限制的免费私有仓库!
  9. linux对磁盘进行分区,Linux的安装过程中,可以实现对磁盘进行分区。
  10. java窗口坐标_如何在Java中获取窗口外部的鼠标单击坐标