web自动化测试:watir+minitest(三)
本文,谢绝转载。
整体框架设计:
1、用例的解耦性。一个测试用例一个脚本。而并非minitest中的N个test写在一个文件中
2、单独调试与全量连跑或部分连跑
3、任意变量、参数配置。这点对后期维护或产品变更频繁非常重要,后面介绍
4、元素解耦,一个元素定义一个方法
5、报告结果展示
我们来看看具体目录结构划分:
总共有四个目录:lib存放库文件;rake启动测试连跑,连跑前后对环境的一些操作;screenshot提供对单独调试和连跑失败后截图保存;temp为测试系统数据文件,比如鉴权文件,地图导入文件等
testcase就是存放测试脚本的目录了。
lib下面的3个文件:
ENV主要为变量设置文件。我的要求是,只要涉及到会变动的参数都给定义到该文件。我不想看到后期开发一个小改动,我们需要改动一批脚本
system文件主要为被测系统的元素集合。一个元素一个方法。我们对注释、方法名的命名都有严格的标准
action:一组动作的集合。比如登录系统包括输入账号、密码、点击登录。我把这些动作封装成一个登录的方法。为什么要这么做?举个例子:
后面需求改动了,在输入完密码后需要输入验证码。如果你有5000个脚本都做了登录,那么你需要改动5000个脚本。而我只要在action的login中
加入验证码的步骤即可。
testcase中用例示例:
#========================================================
#+++++++++++++++++ 测试用例信息 ++++++++++++++++
# 用例 ID: RQ_login_succ_001_001
# 用例标题: 管理员账号登录成功
# 预置条件:
# 1.打开浏览器,进入系统登录界面
# 测试步骤:
# 1.输入正确的管理员账号:admin和密码:123456;
# 2.点击“登录”按钮
# 预期结果:
# 2.登录成功,跳转到“任务配置”页面
# 脚本作者:
# 写作日期: 20160921
#=========================================================
require 'crowdSysAction'
require_lib($debugLog) class CrowdSystemTest < MiniTest::Unit::TestCase def setup
#实例化driver
@driver = CrowdAction.new(@dr)
#打开被测系统
@driver.open_test_system($testBrowser,$crowdSysURL) end def test_RQ_login_succ_001_001
@driver.login($adminAccount,$adminPasswd)
#登录后,检查当前页面存在assert_enterTaskConfig_element元素,即认为登录成功
assert(@driver.assert_enterTaskConfig_element.when_present($waitTime).present?,"登录失败,未跳转到指定页面")
#注销系统,确认:0;取消:1
@driver.logout()
end def teardown
#关闭浏览器
@driver.close_browser
end
end
对工程打包成gem的方法请参看我前面写的文章。http://www.cnblogs.com/fithon/p/6381514.html
git工程位置:https://shencanhui@gitlab.com/shencanhui/workspace.git
web自动化测试:watir+minitest(三)的更多相关文章
- web自动化测试-selenium的三种等待
一.等待的作用 1.在系统的功能运行过程中,所有的内容是需要一定的时间来实现展示, 2.时间耗费长短与网络速度.系统框架设定.接口的执行复杂度有关, 3.因此需要设置缓冲时间,若未设置缓冲时间,容易导 ...
- Web自动化测试项目(三)用例的组织与运行
一.Unittest用例组织 在test_case目录下创建test*.py,组织测试用例 ├── test_case │ ├── __init__.py │ └── test_login.p ...
- Web自动化测试项目搭建目录
Web自动化测试项目搭建(一) 需求与设计 Web自动化测试项目(二)BasePage实现 Web自动化测试项目(三)用例的组织与运行 Web自动化测试项目(四)测试报告 Web自动化测试项目(五)测 ...
- web自动化测试:watir+minitest(一)
基本介绍: 本课程的测试环境和工具为:win7+ruby+watir+minitest Watir 全称是"Web Application Testing in Ruby".它是一 ...
- Windows环境搭建Web自动化测试框架Watir
Windows环境搭建Web自动化测试框架Watir 一.前言 Web自动化测试一直是一个比较迫切的问题,对于现在web开发的敏捷开发,却没有相对应的敏捷测试,故开此主题,一边研究,一边将We ...
- Web自动化测试框架Watir(基于Ruby) - 第2章 使用Watir写自动化测试脚本
一.先来看一个小DEMO 通过上一篇博文<Web自动化测试框架Watir(基于Ruby) - 第1章 Windows下安装与部署>的介绍,我们已经有了完整Watir运行环境,现在我们可以来 ...
- Web自动化测试框架Watir(基于Ruby) - 第1章 Windows下安装与部署
一.前言 Web自动化测试一直是一个比较迫切的问题,对于现在web开发的敏捷开发,却没有相对应的敏捷测试,故开此主题,一边研究,一边将Web自动化测试应用于工作中,进而形成能够独立成章的博文,希望能够 ...
- 使用 Sahi 实现 Web 自动化测试
Sahi 是 Tyto Software 旗下的一个基于业务的开源 Web 应用自动化测试工具.Sahi 运行为一个代理服务器,并通过注入 JavaScript 来访问 Web 页面中的元素.Sahi ...
- Sahi ---实现 Web 自动化测试
参考网址:http://sahipro.com/docs/sahi-apis/index.html Sahi 是 Tyto Software 旗下的一个基于业务的开源 Web 应用自动化测试工具.Sa ...
- Web自动化测试学习方向(Selenium)
目前越来越多的人想学自动化测试,认为自动化测试好牛逼.经常在测试交流群里看见有HR发招聘广告说:招初级(功能测试),招中级(性能测试),招高级(自动化测试)...... 我不去讨论他们这个初中高级的说 ...
随机推荐
- co-dialog弹出框组件-版本v2.0.0
co-dialog theme 访问git:co-dialog 版本v2.0.0 主题2 coog.app('.theme2').use({ title: 'JUST CHECKING.', mess ...
- 爬虫爬取代理IP池及代理IP的验证
最近项目内容需要引入代理IP去爬取内容. 为了项目持续运行,需要不断构造.维护.验证代理IP. 为了绕过服务端对IP 和 频率的限制,为了阻止服务端获取真正的主机IP. 一.服务器如何获取客户端IP ...
- 对ListBox控件中的数据进行排序
实现效果: 知识运用: ListBox控件的Sorted属性 //ListBox控件中的数据项是否按字母顺序排序 public bool Sorted{get;set;} 实现代码: private ...
- Oracle下如何收集 Systemstate dump
2: dump (不包括lock element) 10: dump 11: dump + global cache of RAC 256: short stack (函数堆栈) 258: 256+2 ...
- 2018.10.30 NOIp模拟赛 T1 改造二叉树
[题目描述] 小Y在学树论时看到了有关二叉树的介绍:在计算机科学中,二叉树是每个结点最多有两个子结点的有序树.通常子结点被称作“左孩子”和“右孩子”.二叉树被用作二叉搜索树和二叉堆.随后他又和他人讨论 ...
- linux通配符知识
注意:linux通配符和三剑客(grep,awk,sed)正则表达式是不一样的,因此,代表的意义也是有较大区别的. 通配符一般用户命令行bash环境,而linux正则表达式用于grep,sed,awk ...
- 3 个用于数据科学的顶级 Python 库
使用这些库把 Python 变成一个科学数据分析和建模工具. Python 的许多特性,比如开发效率.代码可读性.速度等使之成为了数据科学爱好者的首选编程语言.对于想要升级应用程序功能的数据科学家和机 ...
- Java开发学生管理系统
Java 学生管理系统 使用JDBC了链接本地MySQL 数据库,因此在没有建立好数据库的情况下没法成功运行 (数据库部分, Java界面部分, JDBC部分) 资源下载: http://downlo ...
- Codeforces Round #464 (Div. 2) A Determined Cleanup
A. Love Triangle time limit per test1 second memory limit per test256 megabytes Problem Description ...
- 【ansible】使用ansible安装nginx
一.主机准备 ServerIP:10.10.10.102 ClientIP: 10.10.10.103,10.10.10.104 二.安装ansible yum -y install ansible ...