`

在TeleNav做测试之silktest

阅读更多
一.概述
当时,公司购买了Silk Test做为web自动化测试的工具,主要用来对已经成型的产品,做自动化回归测试之用.以现在的经验来看,这万把美金花得有点不值得.开源工具如selenium完全可以取代.

二.程序主要结构
1.页面元素的存储
把所有的页面的元素存放在一个名字类似AllPages.inc的文件里,每个页面是一个父节点,页面中的元素做为子节点,代码如下:
 window BrowserChild PrintPage
	[ ] tag "ATT Navigator"
	[ ] parent Browser
	
	[+] HtmlImage Http17216100181TNcomGe
		[ ] tag "$http:??172.16.100.181?TNcom?getMapImage.do?lat=&lon=&scale=3&wi"
	[+] HtmlText TheMapDatabaseUsedForThe
		[ ] tag "The map database used for the TeleNav service may not always reflect reality, due to, among other things, road closures, const*"
	[+] HtmlImage Print2
		[+] multitag "Print[2]"
			[ ] "$http:??172.16.100.181?TNcom?images?menu?print.png[2]"
        [+] HtmlLink Personal
			[+] multitag "Personal"
				[ ] "$http:??www.wireless.att.com?cell-phone-service?welcome"
  [+] HtmlTextField StartAddress
		[ ] tag "$first1"


总之就是个树形结构,元素可能处于树的各种层次,tag显示的是元素的属性

2.将常用的功能封装成函数到一个文件中
新建一个AllFunctions.inc,将常用的功能比如SignIn(), SignOut()等封装.
SingOut代码如下:
[+] Boolean SignOut()
	[-] do
		[ ] BrowserPage.SetActive()
		[ ] 
		[-] if (BrowserPage.HtmlList("$sub-nav").HtmlLink("Log out").Exists(5))
			[ ] BrowserPage.HtmlList("$sub-nav").HtmlLink("Log out").Click()
			[ ] 
		[ ] return true 
		[ ] 
	[-] except
		[ ] LogError("****Error:Error happens when sign out ATT web****")
		[ ] ExceptLog()
		[ ] return false
[ ] 


3.编写测试用例
新建一个AllTestCases.t文件,用来编写test case,写成的test case大概是这样的:
[+] testcase SignIn_ValidPTN()
	[-] do
		[-] if (gsATTPTN==NULL || len(gsATTPTN)==0)
			[ ] InitialAllConfItems()
		[ ] 
		[ ] Verify(SignIn(gsATTPTN,gsATTPTN_PIN,False),True)

		[ ] 
		[-] if (MyAddresses.MyAccount.WelcomeToATTNavigator.Exists(5))
			[ ] writeTestResultsToFile(GetTestCaseName()+":PASSED:ATT active user can login successfully:ATT active user can login successfully")
		[-] else
			[ ] writeTestResultsToFile(GetTestCaseName()+":FAILED:ATT active user can login successfully:ATT active user can't login successfully")
		[ ] 
		[ ] SignOut()
		[ ] 
	[-] except
		[ ] writeTestResultsToFile(GetTestCaseName()+":ERROR:ATT active user can login successfully:Encounter error when ATT active user login")
		[ ] ExceptLog()
		[ ] 

一个.t文件中可以写很多个test case.整个程序结构就是这三部分.

三.几点说明
1.所有的测试数据会放在外部文件中
2.每个test执行之前,系统自动会调用TestCaseEnter()方法,执行完后,自动调用TestCaseExit()方法.会做一些诸如杀浏览器进程,清除缓存之类的事情,根据需要自己决定.
3.可以设置在IE或者FireFox下运行


四.一些看法
1.由于元素是存储在树形结构中,当层次较多时,引用一个元素很不方便,而且当UI位置发生改变时候,需要修改脚本,否则元素将找不到,这个或许silk Test本身的不足.
2.每次运行脚本,都需要自己手工寻找或者创建数据,运行完之后,这些数据大部分不能重复实用.下次运行,还要再次创建,或许应该将创建销毁数据的操作也加入脚本当中.
3.Silk Test能做的Selenium能更方便更好的实现,白花了那么多银子
0
0
分享到:
评论
1 楼 xiaomayi0323 2011-02-21  
你是Telenav in SH的同事吗?

相关推荐

    Telenav Chrome Helper-crx插件

    从xml测试套件在Google地图上映射路线的快速方法 专为读取XML测试套件案例而设计,可用于路由,并为Google地图,此处地图和沙盒地图提供了轻松访问。 供Telenav内部人员使用。 该插件将提醒用户该测试需要哪些设置,...

    kivakit-extensions:扩展KivaKit的模块-源码

    KivaKit扩展0.9.0-快照 该项目包含扩展KivaKit...Java文档 专案 kivakit数据 Javadoc覆盖范围 kivakit数据压缩 kivakit-数据格式-csv kivakit-数据格式库 版权所有:copyright:2011-2021 Telenav ,Inc.,根据Apache许可

    《2019最新整理》七年级美术工作总结.pdf

    由于提供的内容实际上是关于GPS导航软件TeleNav的功能介绍,它主要涉及软件如何在使用中为用户提供语音提示和导航信息,帮助用户轻松找到餐馆、银行、咖啡馆等。TeleNav GPS Navigator这一部分介绍与七年级美术教育...

    2022-2028全球与中国车队管理系统市场现状及未来发展趋势

    全球领先的车队管理系统供应商包括Omnitracs、Trimble、Fleetmatics、Alphabet(Google旗下的Waymo等)和Telenav等,它们在技术创新和市场占有率上占据重要地位。 根据产品类型,车队管理系统可以分为三个主要类别...

    中国移动黑莓GPS导航官方软件TnCmccRim

    压缩包内的文件名称列表,如TeleNav51_RIM_GPS-1.cod到TeleNav51_RIM_GPS.cod,可能代表软件的不同组件或者版本,这些文件是软件安装和运行所必需的部分,包含了程序代码、资源文件等。 总的来说,中国移动黑莓GPS...

    GopherChina - 1.2 用Go打造Grab的路径规划和ETA引擎.pdf

    另外,文件中还提到了多个与地图服务相关的公司和项目,包括DigitalGlobe、Apple Maps、Telenav、OpenStreetCam、Facebook、Microsoft Bing Map等,这些可能是在文件的上下文中讨论与地图数据、地图服务提供商、地图...

    XYAlertView(iPhone源代码)

    来源:Licence:MIT平台:iOS设备:iPhone / iPad作者:TeleNav_ShawnMa  自定义AlertView/LoadingView,包括背景颜色、文字等等,支持队列显示,即可以连续... Code4App编译测试,适用环境:Xcode 4.3, iOS 5.0。

    TSEmojiView(iPhone源代码)

    来源:Licence:MIT平台:iOS设备:iPhone / iPad作者:TeleNav_ShawnMa  实现表情键盘例子。...感谢开发者@TeleNav_ShawnMa 分享代码于Code4App。 Code4App编译测试,适用环境:Xcode 4.3, iOS 5.0。

    城市选择器(iPhone源代码)

    来源:Licence:MIT平台:iOS设备:iPhone / iPad作者:TeleNav_ShawnMa  一个城市选择的选择器,可以选择省份、城市。包含国内主要城市数据. Code4App编译测试,适用环境:Xcode 4.3, iOS 5.0。

    2024年东南亚车队管理系统市场深度研究及预测报告.pdf

    - **主要竞争者**:全球范围内,主要的车队管理系统供应商包括Omnitracs、Trimble、Fleetmatics、Alphabet、Telenav等,这些企业占据了大约25%的市场份额。 - **区域分布**:北美地区占据全球市场约30%的份额,而...

    DataModel:这个存储库定义了开放路由数据库的模式设计。 开放式路径数据库基于 PostgreSQL、PostGIS 和 PGRouting 构建,用于定义行人网络的路径。 未来可能会增加其他交通方式,但目前仅支持步行网络

    要求[PostgreSQL] ( ) [PostGIS] ( ) [PGRouting] ( )安装什么都没有做!OSM 维基链接[轮椅标签] ( ) [Telenav 标签] ( )数据模型方法道路是表示路径、道路和高速公路的线性要素。必需的标签[name] ( ) - 路径的名称...

    两个状态之间切换效果

    描述中提到的“作者Telenav”是指这个项目的创建者,Telenav是一家知名的位置服务和导航软件公司。他们开发的ExpandablePager可能是为了提供更灵活的界面导航和展示方式。"源码ExpandablePager"意味着我们可以通过...

    Android代码-垂直滑动的ViewPage

    compile 'com.telenav.expandablepager:expandablepager:0.2.1' Step 2 Extend desired adapter: ExpandablePagerAdapter (don't forget to override instantiateItem) public class MyAdapter extends ...

    Android代码-一个实现树形内容展示的库

    NodeFlow NodeFlow is an Android library...compile 'com.telenav.nodeflow:nodeflow:0.1.2' Step 2 Extend NodeFlowLayout class and implement abstract methods public class MyFlow extends NodeFlowLayout { ...

    lexakai:Lexakai从Java源代码创建markdown和UML

    <groupId>com.telenav.lexakai</groupId> <artifactId>lexakai <version>0.9.4 概括 Lexakai-来自lexis(希腊语为“ word”)和kai(夏威夷语为“ ocean”)。 从每个maven或gradle项目的源代码中创建文档索引...

Global site tag (gtag.js) - Google Analytics