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

  个人也是由于公司的人员的现状和项目的特殊情况,今年年中后开始折腾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. lintcode:Singleton 单例

    题目: 单例 单例是最为最常见的设计模式之一.对于任何时刻,如果某个类只存在且最多存在一个具体的实例,那么我们称这种设计模式为单例.例如,对于 class Mouse (不是动物的mouse哦),我们 ...

  2. 【nginx运维基础(6)】Nginx的Rewrite语法详解

    概述 重写URL是非常有用的一个功能,因为它可以让你提高搜索引擎阅读和索引你的网站的能力:而且在你改变了自己的网站结构后,无需要求用户修改他们的书签,无需其他网站修改它们的友情链接:它还可以提高你的网 ...

  3. java--依赖、关联、聚合和组合之间区别的理解

    在学习面向对象设计对象关系时,依赖.关联.聚合和组合这四种关系之间区别比较容易混淆.特别是后三种,仅仅是在语义上有所区别,所谓语义就是指上下文环境.特定情景等. 依赖(Dependency)关系是类与 ...

  4. spring-boot-quartz, 依赖spring-boot-parent

    spring-boot-quartz, 依赖spring-boot-parent spring-boot Easyui Quartz 项目启动后输入:http://localhost/ 数据库文件:  ...

  5. linux查看硬件环境

    一:查看cpu more /proc/cpuinfo | grep "model name" grep "model name" /proc/cpuinfo 如 ...

  6. NDK xxxxx could not be resolved解决方法

    Type '*****' could not be resolved Method '******' could not be resolved     问题解决   以下为未尝试方法,如果上面方法解 ...

  7. 简单易懂的命名空间及use的使用

    最近一段时间在研究php框架,一直想的什么时候才能开发出自己的框架,当然这是为了提升自己的编程水平,同时能把平时学的零散的东西糅合在一块熟练应用.但是开发一个框架根本不知道如何做起,先开发什么,虽然p ...

  8. [HIHO1184]连通性二·边的双连通分量(双连通分量)

    题目链接:http://hihocoder.com/problemset/problem/1184 题意裸,写个博客记下输出姿势. /* ━━━━━┒ギリギリ♂ eye! ┓┏┓┏┓┃キリキリ♂ mi ...

  9. git branch

    使用git管理工具,branch 应该是我们接触最多的.不论我们是修复bug,还是做项目,都会新开branch,工作完成后再合并. 然而对一些初学者,对git的一些命令知之甚少,这里,给大家写一些常用 ...

  10. gulp browser-sync自动刷新插件

    很久没弄gulp了,都快忘了,今天又来温习下browser-sync 自动刷新插件,在安装的时候出现以下提示: $ npm install browser-sync --save-dev> ws ...