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

开始前我想吟诗一首

在这里插入图片描述


《无 题》

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

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

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


在这里插入图片描述
果然,,,我还是不适合写诗,我就是那个程序员。

今天来说说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. 由需求分析结果,来预研我们需要的技术栈
技术版本及说明
PythonV3.x(本文为3.7)===编程语言支撑
SeleniumV3.141.0 ===UI元素、控件的识别、定位,以及浏览器控制等
HtmlTestRunnerPython3版本===生成Html测试报告
LoggingPython自带===生成log日志
XlrdV1.2.0===excel读取方法
UnittestPython自带===自动化测试框架
SmtplibPython自带===邮件服务
emailPython自带===邮件服务
osPython自带===系统模块
PyCharmCommunity 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
在这里插入图片描述

总结

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


《再 无 题》

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

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

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

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

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


【分享、共勉、共进、提升】更多、更全、更新的软件测试领域知识,请关注:
在这里插入图片描述


posted @ 2021-04-02 18:39  虫无涯  阅读(6)  评论(0编辑  收藏  举报  来源