Web自动化框架之五一套完整demo的点点滴滴(excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试报告+对接缺陷管理系统+自动编译部署环境+自动验证false、error案例)
标题很大,想说的很多,不知道从那开始~~直接步入正题吧
个人也是由于公司的人员的现状和项目的特殊情况,今年年中后开始折腾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案例)的更多相关文章
- web自动化框架之四测试报告的搭建
现状: 看过前面的文章,楼主用的是python,所以在搭建测试报告这块的时候使用的是unittest+htmlTestRunner:然后发现生成出来的报告,总是有那么不完美的地方,比如想增加图片,比如 ...
- Web自动化框架LazyUI使用手册(3)--单个xpath抓取插件详解(selenium元素抓取,有此插件,便再无所求!)
概述 前面的一篇博文粗略介绍了基于lazyUI的第一个demo,本文将详细描述此工具的设计和使用. 元素获取插件:LazyUI Elements Extractor,作为Chrome插件,用于抓取页面 ...
- 基于Selenium的web自动化框架
转自 : https://www.cnblogs.com/AlwinXu/p/5836709.html 1 什么是selenium Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台. ...
- 【转】基于Selenium的web自动化框架(python)
1 什么是selenium Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.Sel ...
- Web自动化框架LazyUI使用手册(2)--先跑起来再说(第一个测试用例-百度搜索)
作者:cryanimal QQ:164166060 上篇文章中,简要介绍了LazyUI框架,本文便来演示,如何从无到有快速搭建基于lazyUI的工程,并成功运行第一个测试用例. 本文以百度搜索为例,选 ...
- web自动化框架如何设计
web自动化框架如何设计po模式总结: 1. 页面对象模型:当页面特别多的时候,代码更好的维护 2. Po是pageObject设计模式,用来管理和维护一组web元素的对象库 3. 每一个page c ...
- 基于Selenium的Web自动化框架增强篇
在写完上一篇“基于Selenium的Web自动化框架”(http://www.cnblogs.com/AlwinXu/p/5836709.html)之后一直没有时间重新审视该框架,正好趁着给同事分享的 ...
- web自动化框架之一介绍与环境搭建(Selenium+Eclipse+Python)
看到一篇环境搭建文章,详细又全面,这里就不一一重复了 http://blog.csdn.net/dyllove98/article/details/9390649 其它: 1.框架介绍 整个 ...
- Web自动化框架LazyUI使用手册(1)--框架简介
作者:cryanimal QQ:164166060 web端自动化简介 web端自动化,即通过自动化的方式,对Web页面施行一系列的仿鼠标键盘操作,以达到对Web页面的功能进行自动化测试的目的. 其一 ...
随机推荐
- Netty 的Downstream 和 Upstream
Netty的Downstream 和 Upstream 如果一个event从第一个handler传递直到最后一个handler就是 Upstream 相反的如果一个event从最后一个handler传 ...
- Compare_Connect_Letter
题目描述: 比较两个数字mn和nm(如果mn<nm则m<n, 如果nm<mn则n<m,否则n=m) 连接这两个数字 如(mnnm) //比较两个数字mn和nm(如果mn< ...
- centos下hadoop2.6.0集群搭建详细过程
一 .centos集群环境配置 1.创建一个namenode节点,5个datanode节点 主机名 IP namenodezsw 192.168.129.158 datanode1zsw 192.16 ...
- Hibernate逍遥游记-第13章 映射实体关联关系-001用外键映射一对一(<many-to-one unique="true">、<one-to-one>)
1. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hi ...
- ArcEngine中打开各种数据源(WorkSpace)的连接(转)
ArcEngine中打开各种数据源(WorkSpace)的连接 (SDE.personal/File.ShapeFile.CAD数据.影像图.影像数据集) ArcEngine 可以接受多种数据源.在开 ...
- Android Studio安装、配置
Google在2013年I/O大会上发布了Android Studio,AndroidStudio是一个基于IntelliJ IDEA的Android开发工具.这个IDE要比eclipse智能很多,具 ...
- rhel-server-7.2-x86_64无法联网(VMware环境)
vim /etc/sysconfig/network-script vim ifcfg-eno16777736 (编辑网卡名) 将ONBOOT=NO更改为YES (启动network服务时是否启用该网 ...
- MyEclipse 利用反向功能生成Java 实体类
1.Window -> Open Perspective -> MyEclipse Database Explorer 到DB Broswer界面 2.右键 -> New,新建一个数 ...
- Flash上传文件(结合asp.net)
一.实现原理.在某些场合,我们需要使用Flash进行“文件上传”,原因是Flash 能制作出表现力丰富的UI界面. (自负又孤陋寡闻的我在这里做一个补充:Flash使用flash.net包中的File ...
- mongodb 常见操作转
Ø Collection聚集集合 1.创建一个聚集集合(table) db.createCollection(“collName”, {size: 20, capped: 5, max: 100}); ...