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页面的功能进行自动化测试的目的. 其一 ...
随机推荐
- hdu2717 Catch That Cow
http://acm.hdu.edu.cn/showproblem.php?pid=2717 //水搜... #include<stdio.h> #include<math.h> ...
- [mock]7月25日
1. 将一个数组分成左右两部分,使得右边的某个连续子段和减去左边的某个连续字段和最小[7,8,9,|3,5,-1] sum right - sum left minimal 想到左右分一刀,O(n), ...
- VCL源码分析方法论(以TButton.Caption属性的由来为例)
最近一段时间似乎流行源码分析:)我也来谈谈在过去一段时间里对VCL源码的分析方法方面的一点体会,本文将不探讨VCL类库的构架和设计模式方面的东本,只是以我们常见的控件属性/方法的实现过程作简单的说明, ...
- Larave 多图片上传
首先使用Dropzone.js前端组件 {{ HTML::style('css/basic.css');}} {{ HTML::script('js/dropzone.js') }} form部分只需 ...
- JDK,JRE,JVM区别与联系
JDK : Java Development ToolKit(Java开发工具包).JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工 ...
- NSArray 利用数组创建数组
NSArray *array=[NSArray arrayWithObjects:@"1",@"2",@"3", nil]; ...
- 持久化框架Hibernate 开发实例(一)
1 Hibernate简介 Hibernate框架是一个非常流行的持久化框架,其中在web开发中占据了非常重要的地位, Hibernate作为Web应用的底层,实现了对数据库操作的封装.HIberna ...
- mysql字符串区分大小写的问题
一.1. CREATE TABLE NAME(name VARCHAR(10)); 对这个表,缺省情况下,下面两个查询的结果是一样的: SELECT * FROM TABLE NAME WHERE n ...
- nginx的location配置
http://blog.sina.com.cn/s/blog_97688f8e0100zws5.html http://blog.csdn.net/yanook/article/details/100 ...
- 面试题_93_to_102_编程和代码相关的面试题
93)怎么检查一个字符串只包含数字?(解决方案) 94)Java 中如何利用泛型写一个 LRU 缓存?(答案<) 95)写一段 Java 程序将 byte 转换为 long?(答案) 95)在不 ...