标题很大,想说的很多,不知道从那开始~~直接步入正题吧

  个人也是由于公司的人员的现状和项目的特殊情况,今年年中后开始折腾web自动化这块;整这个原因很简单,就是想能让自己偷点懒、也让减轻一点同事的苦力活;对于自动化测试与人工测试优缺势的问题,这里不想深入讨论,开一个博客收集一些观点然后开个讨论组讨论效果可能会更好。

标题上列的,是自己对web自动化这块统一的一个想象或是一套完整的自动化应所包含的的部分,目前完成了excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试报告,待后续开发的还有对接缺陷管理系统+自动编译部署环境+自动验证false、error案例。

这些天,把自己做的这套,抽离出来,用126邮箱登录做了个简单功能的demo,因为也是边干活边抽时间整理,特别是在126功能业务上面封装的不是太好,认真仔细的童鞋如果看了,应该还能发现有几个缺陷没有修正,分享的demo都是调试通过的,有一部分没有整完或完善, 但不影响整个流程或介绍,具体问题有(登录方式,火狐跟谷歌浏览量不支持手机验证码登录、jsp界面上面的开始时间与一部分汇总统计值没有弄等其它异常pass处理);各位看官~如果看完能有一点点帮助的话、我也就开心了~~好了,上菜~~

1.excel功能案例参数化

这部分对自己的要求主要是两个方面:功能测试人员可以维护和看懂该文档、参数化的部分要满足实际的功能业务;最好是不太需要沟通,一看简单明了,那个项是控制啥用的,那些是输入数据、那些是需要检查的点。

2.业务功能分层设计

这部分对自己要求:功能业务划分明确,写脚本思路很清晰;先得到一个浏览器、再得到一个页面、再到页面上的某个功能、然后再运行这个功能。应该是还需要增加runTest目录,做为一个main入口;demo就一个功能,所以就没有体现了;这块最核心的点,是对测试数据的参数化的实现和对异常的封装,最麻烦的地方是业务功能判断的逻辑,具体的话,可以看看下面:

功能对测试数据参数化实现:

这段代码,是实现测试话登录的;现在回头看,明显有个很严重的问题,哎。。。这里就不修正了。

功能业务逻辑判断:

验证结果的判断和得到界面信息输出,这一块业务判断不严谨,实际项目可以根据自己的功能业务特性处理;这套框架里面,没有有到unittest+htmlTestRunner。

3.mysql数据存储封装

初始化数据库连接

表结构的设计可以仔细看下,某个值都是有用的,都很有价值,这里要功能测试人员一看就知道跑的case到底是啥情况,图片只是一个辅助手段,一看数据就明白是最好的。

数据的插入

这里需要强调的是对特殊字符的处理,这个非常的关键;因为不单单输入的测试数据还是界面输出的信息数据都可能包含" ' "特殊字符;这里用了*args很精髓,可以处理单个字符串,也可以处理多个字符串;数组类的处理是类似的。

4.截图模块

这块没啥想说的

5.读excel模块

也没啥说的

6.日志模块

这里用的是开源的一个,很不好用;打的日志太底层了;这块是一个需要优化的点。

7.功能运行类EmailLoginRun.py

具体的项目,建议新建一个TestRun包,建议个main一个入口执行所有功能就好;demo就直接拿功能方法运行了。

8.web jsp

jsp这块还多优化的

运行EmailLoginRun.py类,运行完毕,运行后效果:

手工把图片移动tomcat容器内,jsp上需要调用。

访问jsp页面,测试结果的过滤和图片的点击都实现了;统计数数全部的,没有细分统计,开始日期、结束日期没有整。

数据过滤pass界面。

未实现部分:

待续...

最后:工程demo已压缩,上传在群号:342294158;如果能有帮助到你的地方,我很荣幸;如果看了对你的自动化工程有一点补充,我很开心;如果看了能能增加你的想象或打开你的思维,我很愉快;如果你看完了,没啥作用,那很抱歉,浪费了你宝贵的时间~~

中午时间现码的,有错别字或语句不通畅的,多多包涵~~

Web自动化框架之五一套完整demo的点点滴滴(excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试报告+对接缺陷管理系统+自动编译部署环境+自动验证false、error案例)的更多相关文章

  1. web自动化框架之四测试报告的搭建

    现状: 看过前面的文章,楼主用的是python,所以在搭建测试报告这块的时候使用的是unittest+htmlTestRunner:然后发现生成出来的报告,总是有那么不完美的地方,比如想增加图片,比如 ...

  2. Web自动化框架LazyUI使用手册(3)--单个xpath抓取插件详解(selenium元素抓取,有此插件,便再无所求!)

    概述 前面的一篇博文粗略介绍了基于lazyUI的第一个demo,本文将详细描述此工具的设计和使用. 元素获取插件:LazyUI Elements Extractor,作为Chrome插件,用于抓取页面 ...

  3. 基于Selenium的web自动化框架

    转自 : https://www.cnblogs.com/AlwinXu/p/5836709.html 1 什么是selenium Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台. ...

  4. 【转】基于Selenium的web自动化框架(python)

    1 什么是selenium Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.Sel ...

  5. Web自动化框架LazyUI使用手册(2)--先跑起来再说(第一个测试用例-百度搜索)

    作者:cryanimal QQ:164166060 上篇文章中,简要介绍了LazyUI框架,本文便来演示,如何从无到有快速搭建基于lazyUI的工程,并成功运行第一个测试用例. 本文以百度搜索为例,选 ...

  6. web自动化框架如何设计

    web自动化框架如何设计po模式总结: 1. 页面对象模型:当页面特别多的时候,代码更好的维护 2. Po是pageObject设计模式,用来管理和维护一组web元素的对象库 3. 每一个page c ...

  7. 基于Selenium的Web自动化框架增强篇

    在写完上一篇“基于Selenium的Web自动化框架”(http://www.cnblogs.com/AlwinXu/p/5836709.html)之后一直没有时间重新审视该框架,正好趁着给同事分享的 ...

  8. web自动化框架之一介绍与环境搭建(Selenium+Eclipse+Python)

    看到一篇环境搭建文章,详细又全面,这里就不一一重复了 http://blog.csdn.net/dyllove98/article/details/9390649 其它: 1.框架介绍      整个 ...

  9. Web自动化框架LazyUI使用手册(1)--框架简介

    作者:cryanimal QQ:164166060 web端自动化简介 web端自动化,即通过自动化的方式,对Web页面施行一系列的仿鼠标键盘操作,以达到对Web页面的功能进行自动化测试的目的. 其一 ...

随机推荐

  1. Hibernate逍遥游记-第12章 映射值类型集合-005对集合排序Map(<order-by>\<sort>)

    1. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hi ...

  2. MVVM 代码记录

      一.XML <Page x:Class="MVVM.MainPage" xmlns="http://schemas.microsoft.com/winfx/20 ...

  3. PCL—低层次视觉—点云分割(邻近信息)

    分割给人最直观的影响大概就是邻居和我不一样.比如某条界线这边是中华文明,界线那边是西方文,最简单的分割方式就是在边界上找些居民问:"小伙子,你到底能不能上油管啊?”.然后把能上油管的居民坐标 ...

  4. Invoke与BeginInvoke

    一.为什么 Control类提供了 Invoke和 BeginInvoke机制? 关于这个问题的最主要的原因已经是 dotnet程序员众所周知的,我在此费点笔墨再次记录到自己的日志,以便日后提醒一下自 ...

  5. Android应用开发学习笔记之Intent

    作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz Intent是什么呢?来看Android官网上的定义: An intent is an abstractdescri ...

  6. java web 下实现文件下载

    来自:http://blog.csdn.net/longshengguoji/article/details/39433307 需求:实现一个具有文件下载功能的网页,主要下载压缩包和图片 两种实现方法 ...

  7. "hadoop namenode -format"命令的作用和影响的文件

    在hadoop部署好了之后是不能马上应用的,而是对配置的文件系统进行格式化.这里的文件系统,在物理上还未存在,或者用网络磁盘来描述更加合适:还有格式化,并不是传统意义上的磁盘清理,而是一些清除与准备工 ...

  8. [POJ3279]Fliptile(开关问题,枚举)

    题目链接:http://poj.org/problem?id=3279 题解:http://www.cnblogs.com/helenawang/p/5538547.html /* ━━━━━┒ギリギ ...

  9. iOS学习笔记: 使用CAShapeLayer创建带有空心区域的遮罩层

    CAShapeLayer是用来接受矢量Path,直接使用GPU来进行渲染的特殊图层.看下面效果: 对应代码: let markLayer = CAShapeLayer(); markLayer.fra ...

  10. SQL server函数大全

    函数类别 作用 聚合函数 执行的操作是将多个值合并为一个值.例如 COUNT.SUM.MIN 和MAX. 配置函数 是一种标量函数,可返回有关配置设置的信息. 转换函数 将值从一种数据类型转换为另一种 ...