开始前我想吟诗一首


《无 题》

曾经有个难题摆在我的面前,自动化测试框架到底如何搭建?
曾经觉得它神秘而又那么难以企及;
曾经觉得它高端、大气、上档次。

而如今;
大佬想说;
其实他就是个工具和手段而已。

也许;
你也有如此的想法;
不如看大佬如何揭开它神秘的面纱。



果然,,,我还是不适合写诗,我就是那个程序员。

今天来说说webUI自动化框架如何搭建?

先抛出几个问题:

  • 什么是框架?
  • 搭建框架之前要做什么?
  • 要用到什么技术?
  • 作为新手我该怎么做?

什么是框架?

是不是蒙了?脑瓜子嗡嗡的,哈哈哈;
写了很久,其实我也道不明如何解释这个框架更为合理;
我们来看看大牛是如何解释的?
来自知乎作者金戈的解释如下:

框架(Framework)是一个框子——指其约束性,也是一个架子——指其支撑性。
IT语境中的框架,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构。
在此结构上可以根据具体问题扩展、安插更多的组成部分,从而更迅速和方便地构建
完整的解决问题的方案。

我们来分析下:

  • 约束性;
  • 支撑性;
  • 问题扩展;
  • 构建问题解决方案。

SO,我们webUI自动化框架的目的也是如此:

我们把常用的功能进行封装,统一调用,并且支持功能扩展,开发者或者测试人员可以根据自己项目的需求来进行修改和扩展。

就好比如下:

基本是有点明白了吧。。。。。。

搭建框架之前要做什么?

  1. 首先得弄清,你要这个框架干什么?你的目的是什么?要解决怎样的问题,即实现目的

比如我们ui自动化,模拟用户行为操作,提升测试效率的同时,能尽可能减少自动化的投入成本

  • 模拟用户(鼠标、键盘)操作,达到快速、重复执行测试用例;
  • 便于回归测试,快速覆盖主线用例或功能;
  • 线上或线下巡检测试,结合持续集成,及时发现运行环境存在的问题;
  • 提升个人自动化测试技术能力,为业务提供强有力的测试手段。

=======================================================

  1. 需要搞明白这个框架要实现什么功能,即实现需求是啥?

比如你要实现以下功能:

  • 基于Unittest,封装、调用和组织所有的测试用例,进行批量或指定用例运行;
  • 支持邮件服务,可添加任意团队成员邮箱,及时通知团队成员自动化运行结果;
  • 支持log日志,保存运行过程所有或需要记录的数据;
  • 支持HTML测试报告,直观展示测试结果和数据;
  • 支持用例设计和测试结果分离,便于数据管理;
  • 支持Json、conf、excel等配置文件读取,提供灵活的配置文件操作方法;
  • 支持用户登录封装,后续所有的用例登录公用一个方法;
  • 支持任意修改HTMLTestRuner,可定制测试报告模板;
  • 支持测试报告多语言(英文和中文);
  • 支持截图功能;
  • 支持Jenkins持续集成。
  1. 需求有了,那我们要对需求进行详细分析,即需求分析
功能 说明
使用Unittest框架 开源自动化测试框架,直接使用
批量或指定用例运行 Unittest框架可支持此功能
log日志 使用Python的logging库即可
生成HTML测试报告 使用HtmlTestRunner.py模块可实现此功能
用例设计和结果分离 使用配置文件如excel、json等组织用例数据
支持Json、conf、excel等配置文件读取 这里先使用excel进行页面元素的驱动
用户登录封装 直接把登录功能模块化,使用Unittest框架中的setup,teardown即可
定制测试报告模板 使用HTMLTestRuner.py模块
报告多语言 使用HTMLTestRuner.py模块
截图功能 使用Selenium的save_screenshot方法

从上边我们就清晰知道我们是如何和开发过程联系起来,这样你就能知道需要怎样的技术了。。。。

  1. 由需求分析结果,来预研我们需要的技术栈
技术 版本及说明
Python V3.x(本文为3.7)===编程语言支撑
Selenium V3.141.0 ===UI元素、控件的识别、定位,以及浏览器控制等
HtmlTestRunner Python3版本===生成Html测试报告
Logging Python自带===生成log日志
Xlrd V1.2.0===excel读取方法
Unittest Python自带===自动化测试框架
Smtplib Python自带===邮件服务
email Python自带===邮件服务
os Python自带===系统模块
PyCharm Community 2020.2汉化版
操作系统 Windows10旗舰版64位
其它 后续补充
  1. 根据技术栈实现需求来确定我们的框架结构
│  main.py                     # 框架入口
│  README.md                   # READNE
│
├─common                       # 公用方法,统一封装和调用
│  │  baseInfo.py              # 登录模块封装
│  │  creenShot.py             # 截屏封装
│  │  HTMLTestRunner.py        # 报告模板
│  │  logOut.py                # 日志封装
│  │  readExcel.py             # excel用例数据读写封装
│  │  reportOut.py             # 报告封装
│  │  sendMain.py              # 邮件封装
│  │  __init__.py
│
├─creenshot                    # 截屏文件存放目录
│      2021-03-23-17_56_11_screen.png
│
├─file                         # 框架涉及到的所有文档存放目录
│      1-框架架构图片.jpg
│      2-框架结构说明脑图.jpg
│      3-框架执行流程.jpg
│      4-log日志截图.jpg
│      5-html报告截图.jpg
│      6-邮件样式截图.jpg
│      7-README.png
│
├─log                          # log日志存放目录
│      2021_03_23 17_57_40-MeiDuo _test_log.log
│
├─page                         # 页面元素封装
│  │  goods.py
│  │  usercentor.py
│  │  WebElement.xlsx
│  │  __init__.py
│
├─report                       # 测试报告存放目录
│      2021_03_23 17_57_40-MeiDuo _test_report.html
│
├─testcase                     # 测试用例设计
│  │  test_goods.py
│  │  test_user_centor.py
│  │  __init__.py
  1. 根据框架结构实现需求来确定如何运行框架,即设计框架的执行流程

  2. 接下来就是实现过程

实现过程建议找一个实际的项目来开展。具体的就不说了,按照以上的流程和框架基本知道怎么做。

是不是很有难度???还是不太明白

不着急,继续往下看,还有妙招。

作为新手如何去做?

  • 针对上边提到的技术栈,得提升个人技术能力

比如selenium、python这两个必备技能,一定得积累。作为老鸟,给大家提供下某机构的测试开发的技能图谱,供参考。本框架可暂时不需要这么多,仅作为自己后续提升的点作为参考。


如果看不清,联系作者VX索取:NoamaNelson

  • 弄明白框架中的目录和python包的含义;

直观的看,目录就是一个文件夹,而python包的话,相当于一个文件夹中多了一个__init__.py文件

  • 学会使用Pycharm

这是基本的编程工具,是python强大的编辑神器,可以快速帮助你整理、阅读、开发代码

  • 重申,一定要对Python有了解和学习

可以参考https://blog.csdn.net/noamanelson/category_10644387.html

码字不易

“武功心法”

经过上边的指引,如果还是对框架搭建没有思路,那博主给大家整理了一套完整的教程文档,帮助你一星期入门框架搭建:https://blog.csdn.net/noamanelson/category_10786401.html

总结

此时此刻,我还想吟诗一首:


《再 无 题》

天生我才必有用,
千金散尽还复来。

啊,
我是缺千金之人吗?
吾只要一金足以。

有志者事竟成,破釜沉舟,百二秦关终属楚;
苦心人天不负,卧薪尝胆,三千越甲可吞吴。

啊,
你无须破釜沉舟,只需照猫画虎;
你无须卧薪尝胆,只需按部就班。

啊,
自动化测试之路漫漫,
吾将上下而求索,
恭祝大家马到成功。


【分享、共勉、共进、提升】更多、更全、更新的软件测试领域知识,请关注:


大招来袭 | 还在为不会搭建自动化测试框架而发愁吗?万字长文,大佬有妙招!!相关推荐

  1. 平安夜福利,送3本《从0到1搭建自动化测试框架》

    VOL 338 24 2021-12 今天距2022年8天 这是ITester软件测试小栈第338次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上 09 ...

  2. 如何搭建自动化测试框架

    序 今天先聊聊如何搭建自动化测试框架,主要会聊聊一些思路上的东西,从一个最简单的demo到把一个框架该有的组件都搭建好.本文主要以web自动化为例子,使用的语言是js. 一.什么是自动化测试框架 在了 ...

  3. 如何从零搭建自动化测试框架

    搭建的自动化测试框架要包括API测试,UI测试,APP测试三类.以上三类其实可以简化为两类,那就是: 1)接口自动化测试框架搭建 2)UI自动化测试框架搭建. 没问题,安排,且是手把手教你如何搭建以上 ...

  4. Selenium+python怎么搭建自动化测试框架、执行自动化测试用例、生成自动化测试报告、发送测试报告邮件

    目录 一.项目结构介绍 1.mztestpro测试项目 2.bbs目录 3.test_case 二.编写公共模块 三.编写Page Object 四.编写测试用例 五.执行测试用例 小结: 本人在网上 ...

  5. 软件测试用例自动化框架,如何搭建自动化测试框架?

    序 今天先聊聊如何搭建自动化测试框架,主要会聊聊一些思路上的东西,从一个最简单的demo到把一个框架该有的组件都搭建好.本文主要以web自动化为例子,使用的语言是js. 一.什么是自动化测试框架 在了 ...

  6. 从0开始搭建自动化测试框架之PO分层架构

    一.什么是PO模式 全称:page object model  简称:POM/PO PO模式最核心的思想是分层,实现松耦合!实现脚本重复使用,实现脚本易维护性! 主要分三层: 1.基础层BasePag ...

  7. Ruby+Watir搭建自动化测试框架

    通过一番比较和精选,最终决定使用目前比较流行的Ruby来作为我的自动化测试框架设计的首先测试脚本,加上它的测试工具Watir几乎完美的代替了所谓收费工具QTP,并且有过之而无不及. 下面我们正式开始说 ...

  8. appium+python搭建自动化测试框架_TestAPP框架(三)

    Pycharm 创建 Project,搭建 APPTEST框架如下图: 1.框架功能 业务功能的封装 测试用例封装 测试包管理 截图处理 断言处理 日志获取 测试报告生成 数据驱动 数据配置 2. d ...

  9. 还在用通风放味除甲醛呢?专家教你三个小妙招,帮你轻松除甲醛!

    甲醛,又名蚁醛,是一种无色气体,一定浓度下会有刺激性气味,对人体会有刺激性,多表现在人的眼睛.鼻子.呼吸道黏膜等.之所以会被公认为室内装修污染中最难治理的有害气体,关键就在于相较于其他室内污染物甲醛的 ...

最新文章

  1. php可以定义数组的常量吗
  2. 任意进制转换简单理解
  3. 【C++】45.尽量不要在构造函数中调用函数或开启线程
  4. Working copy XXX locked and cleanup failed in SVN
  5. mkswap命令详解
  6. ASP.NET Core ---日志
  7. 推断:Facebook的新Java静态分析工具
  8. kubernetes ui 搭建
  9. mysql密码命名规则_MySql命名规范
  10. Eclipse和Notepad++快捷键
  11. 让皮肤看起来更加水嫩光泽
  12. 用python做一个输入半径值计算圆的面积保留两位小数_1063 计算谱半径 (20分)
  13. LearnOpenGL之OpenGL特性
  14. SSM框架-实现模糊查询-foreknow_cms
  15. keli不支持中文,显示中文乱码
  16. 基于arduino的ESP32 学习笔记(四)基于AIDA64的电脑性能监控
  17. 【知识点总结】计算机操作系统
  18. 使用 MTR 分析网络延迟及丢包
  19. 如何快速压缩PPT文件?
  20. HTML+CSS大作业——水果介绍-橙子之家(6页) HTML+CSS+JavaScript 学生dreamweaver网页设计作业成品

热门文章

  1. 苹果的大成是如何炼成的?
  2. Android聚合SDK母包反编译出包教程
  3. 这款网红编辑器竟然能约会谈恋爱,找对象不看脸,主要看编程水平!
  4. 林志玲19岁清纯照曝光(组图)
  5. python + mitmproxy 脚本大全(附源码+实例)
  6. 用Kotlin破解Android版微信小游戏-跳一跳
  7. 2021-08-02反省
  8. DML、DDL、DCL的概念及区别
  9. mysql多选基础题_mysql基础~经典题目二
  10. 企业财务管理升级,智慧税务和数据可视化打造新标准