设计自己的基于Selenium 的自动化测试框架-Java版(1) - 为什么selenium还需要测试框架?...
本人自动化测试接触时间不久,如有误导,概不负责。
既然有了selenium这个开源的自动化的工具,为什么还要我们自己再去写一个框架?
Selenium是自动化的工具,当然是可以用在测试领域,但他不是为测试量身打造的。当然我们在编写简单的脚本的时候也不需要什么框架,随着时间的推移,或者脚本的变多,我们发现有很多重复的代码,这时候我们就可以把这些重复的代码提取出来,就形成所谓的框架。
首先一个普通的测试用例,比如以一个Excel为例(如下图),每一行代表一个测试步骤,每个步骤又包含(步骤名,描述,期望结果)3个部分。
TestNG + selenium我想网上也有很多人用的这两个来搭配。
我们自定义一个TestCaseClass(测试用例类)来定义一个Test Case(测试用例)。让后让Class继续Selenium中的SeleneseTestBase,SeleneseTestCase,或者SeleneseTestNgHelper.用TestCaseClass的一个Method(方法)对应一个Test Step.Method Name对应Step Name,
方法中Operation(selenium.*一些actions)对应Description,方法中的Assertions(如AssertEqual)来对应Expected Result.
再加上启动selenium和关闭selenium的代码,这样一个TestCaseClass就可以运行起来了。
这时候如果我们要写10本case,问题就来了。
1)每次运行TestCase都需要实例化selenium,都要start,和close。这写都重复能不能提取出来?
2)能不能设计自己的Actions(操作),能不能设计自己的Assertions(我叫做检查点)
3)能不能把selenium运行的一些环境信息(如OS,Browser,server,port)保存到配置文件中?
4)能不能吧测试对象分离出来保存(比如保存到xml文件)?
5)能不能吧测试数据分离出来保存(比如保存到xml或excel文件中)?,能不能实现数据迭代,而不只是重复的copy代码来实行不同的数据测试。
6)能不能一次执行10本Case?当然也可以,TestNg有自己的配置文件,你可以定义N个Class。但我有个定势思维,总不能Class文件和测试用例关联起来。
7)异常处理,如果一个Test Step失败了,会不会执行下面的步骤,还是直接跳过该本Case。
8)如果一个TestCase失败了,下面的case还能不能执行?Case之间有没有依赖性?
9)有没有详细的log输出,当执行失败的时候,能精准的定位错误。因为自动化测试要无人值守,log也是至关重要。
10)有没有详细的测试结果输出,能不能多种格式(xml, html, excel等等),能不能自定义要输出的内容。
11)包括与其他测试工具协同工作,如autoit,Hudson,QC。怎么使用Hudson来进行调度job去执行一套测试用例?怎么把测试结果上传到QC之类测试管理工具?和怎么让autoit和处理selenium干不了的工作等等。
这上面的问题是我工作中遇到的一些问题,TestNg并不能解决上面的全部,我们可以在TestNg的基础上加上一些从而来实现这些目的。当让可以自己写一套处理这些的方法。
可能我们在测试过程并不需要这么多功能,也可能会遇到更多的问题。最适合的就是最好的原理。
希望通过工作记录自己的工作下来,将上面的内容一步一步实现并整理出来。
http://blog.csdn.net/caiqcong/article/details/7594687
设计自己的基于Selenium 的自动化测试框架-Java版(1) - 为什么selenium还需要测试框架?...相关推荐
- 设计自己的基于Selenium 的自动化测试框架-Java版(3) - 给框架分分层
设计自己的基于Selenium 的自动化测试框架-Java版(3) - 给框架分分层 给我们的框架分为3层,分别是叫逻辑层,数据层,对象层. 这三层的存储格式都用xml来表示. 1.逻辑层 (test ...
- 设计自己的基于Selenium 的自动化测试框架-Java版(2) - 定义自己的工作流程
设计自己的基于Selenium的自动化测试框架-Java版(2) -定义自己的工作流程 Work flow chart 上图是整个工作流程,红色虚线上面的需要手动来完成,红色虚线下面的实现自动化. 我 ...
- EPF:一种基于进化、协议感知和覆盖率引导的网络协议模糊测试框架
本文系原创,转载请说明出处:from 信安科研人,关注公众号信安科研人,获取更多安全资讯 文章目录 实验 工具的安装 1.安装AFL++ 2.安装epf 对IEC104协议库进行fuzz 实验准备 使 ...
- 微软出品自动化神器【Playwright+Java】系列(十二)测试框架的设计与开发
一.前言 大家好,我是六哥! 又有好长一段时间没更文了,不是我懒,而是确实在更文上,没有以前积极了,这里是该自我检讨的. 其实不是我不积极,而是相对更文学习来说,优先级不是最高. 对我而言,目前最重要 ...
- java搭建线程池框架,JAVA线程池管理及分布式HADOOP调度框架搭建
大家看到了线程的好处了吧!单线程需要10S,10个线程只需要1S.充分利用了系统资源实现并行计算.也许这里会产生一个误解,是不是增加的线程个数越多效率越高.线程越多处理性能越高这个是错误的,范式都要合 ...
- Java selenium和python_c#和Java和python设置selenium超时时间
c# //设置页面加载超时时间 this.driver.Manage().Timeouts().PageLoad.Seconds.Equals(TimeSpan.FromSeconds(300)); ...
- 【算法设计与分析】Dijskra算法代码:Java版
import java.util.Arrays;public class DijkstraAlgorithm {public static void main(String[] args) {char ...
- 软件测试关键字搜索怎么测,软件测试中基于关键字的自动化测试
一.关键字概念 建立基于关键字的测试设计和测试自动化的前提是:构成任何应用程序的离散功能性业务事件可以使用短文本描述关键字和相关联的参数值对变量进行描述.例如,大多数应用程序要求用户登录:此业务事件的 ...
- 2020年你不可不知的自动化框架,可替代Selenuim的测试框架Top10
Selenium是一种开源自动测试工具.它可以跨不同的浏览器和平台在Web应用程序上执行功能,回归,负载测试.Slenium是最好的工具之一,但确实有一些缺点. 业界有一些强大的工具可以替代Selen ...
最新文章
- 类脑信息处理研究取得进展
- 红茶一杯话Binder(传输机制篇_下)
- java 多线程不安全_多线程并发为什么不安全
- arg是什么函数_怎么实现边听歌边搜图?线程初体验:常用函数
- 修改oracle 管理员密码 cmd
- 8、jeecg 笔记之 自定义word 模板导出(一)
- 博图能打开s7200吗_域名掉备案了,还能打开吗?域名掉备案了怎么办?
- gstat | 空间插值(四)——克里金插值之协同克里金和交叉验证
- PXE环境下安装系统(DHCP+TFTP+HTTP+kickstart)
- 基于jquery鼠标点击图片翻开切换效果
- 二进制 八进制 十进制 十六进制
- 25%的CPU利用率也能够让一台笔记本如此狼狈 (小红伞)
- 获取连接设备的SN号
- 什么是阿里云aca认证,阿里云aca认证有用吗
- 笔试题--移动手机号短号
- mac php fpm 启动,mac 启动php-fpm
- Windows自定义开关机的音乐
- 龙光集团总部实力雄厚 全力出击占领市场
- 上班第一天总结(以装环境为主)
- C#报错:试图加载格式不正确的程序 0x8007000b
热门文章
- OpenCV-风景—天空滤镜
- 关于Android的自动化测试,你需要了解的5个测试框架
- android 模拟gps坐标,1020. Android GPS定位欺骗(模拟定位)的3类途径4种方式
- 代替嵌套循环java_蓝石榴_个人博客_Java中for循环嵌套的替换优化
- halcon窗体的移动和缩放_halcon与C#联合编程之鼠标控制图片缩放,拖动,roi
- Java安装环境变量配置-day1
- 仅展示近三天的动态设置_朋友圈设置仅3天可见,一般是这3类人,看看你是否在其中?...
- Pytest学习-如何在用例代码中调用fixtrue时传入参数
- opencv viz3d 中的坐标系
- solve stiffness matrix in matlab