51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3562|回复: 5
打印 上一主题 下一主题

[原创] 想作一个使用vb script的自动测试框架

[复制链接]

该用户从未签到

跳转到指定楼层
#
发表于 2011-9-27 22:58:56 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
前些日子做的一个项目是测试一个基于WEB应用,为了照顾公司里没有安装QTP的测试兄弟,俺就尝试着建立了一套Function Library,使用windows上默认的vb script引擎。具体代码有点象Python的PAMIE,不过声明一下,俺可不象有些大学*兽,所有代码全是自己写的,可没抄袭PAMIE哟。

几个QA朋友看了俺的代码,都觉得也可以用到其他的WEB测试上。如果能整理成一套完整的自动测试Framework共享出来(咱也Data Driven一把),也可以打击一下某公司疯狂搂钱的嚣张气焰,哈哈...

好啦言归正传,在座的贫苦兄弟们有没有感兴趣的,我们可以一起努力完成这个项目,同时大家也可以提高自己的技术水平。
下面是俺的一点不成熟的想法:
暂用项目名:WEB自动测试框架(vb script)
使用语言:windows标准vb script (Windows Script Host)
浏览器:IE和Firefox
License:完全免费
文档使用语言:英语和中文
演示网站:正在寻找中...
欢迎参与对象:
1.精通vb script和IE/Firefox object model的大牛
2.精通测试框架文档的写手(英语和中文)
3.可以提供有益建议的经验人士
4.可以帮着摇旗呐喊的热血青年...

下面欢迎大家踊跃参与报名,也请众斑竹挺立支持哟!

投名状是先建议一个可以用来起草code的演示网站,要求是标准的html包括所有的常见object(比如:drop down box, check box, radio, button等等),而且没有License限制,最好能放到单机上...
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2011-10-24 10:01:43 | 只看该作者
如果大家感兴趣,可以先用我的邮箱联系,还可以加我的邮箱到MSN上。
地址是:attestautomation(用的是gmail的)

一直在找一个合适的测试对象,最近这两天找到一个免费的客户调查软件,设置上不算太麻烦,需要一个MySQL的数据库。不过也正好可以在框架里加一部分数据库测试的内容。现在正在编一个使用控件比较多的页面,最后看看再说吧...

大家如果感兴趣也可以看看这个软件:Limesurvey
http://www.limesurvey.org/

最近单位有一个非常大的项目要开始了,可能要忙一阵子。进度会比较慢,请大家多包涵。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2011-10-19 10:56:54 | 只看该作者
楼主可以share 一个方便大家交流的平台,我非常感兴趣你这个idea的,how was it going now?
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2011-10-17 23:25:03 | 只看该作者
1、么看到联系方式
2、设计方案先行,代码跟进
3、么见到一个可以让大家参与的平台(代码托管、文档托管等 ...
launcelot 发表于 2011-10-7 23:13


想先看看有多少人感兴趣...主要也是因为俺一个人实在是没有时间做这一大套,最近还是满忙的。
俺的邮箱是:attestautomation(用的是gmail的)
回复 支持 反对

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2011-10-17 23:08:52 | 只看该作者
本帖最后由 eightants 于 2011-10-17 23:15 编辑
可以看看我之前发过的帖子里的FrameworkManager的框架,就是基于vbs的,不知道和LZ的有没有相似之处?
shotstar 发表于 2011-10-9 09:26


FrameworkManager主要是针对QTP的,而我却是想做一点和QTP没有关系的东西。希望也能让那些不愿意使用盗版又不想被HP盘剥的公司和个人多一个选择的方向。如果一定要说象什么的话,应该更象Python的PAMIE。具体的可以参考我下面的这个简单例子:

Test Scenario:
1. 登录到AdvancedQTP论坛 (本来想用51testing做例子的,可惜这里的连接都是中文的,我现在用的电脑又不支持中文...)
2. 点击进入“Automation Frameworks”
3. 打开帖子 - “Welcome to AdvancedQTP Automation Frameworks Board”
4. 检查相关内容(这里假设需要检查红色的关键词:Guidelines出现在网页上)

相关VBScript代码:
其中第一部分可以根据测试主体的不同而修改(Data Driven,嘿嘿),而且可以通过读写Excel实现类似操作QTP Datatable的功能。

运行方法:把下面整个脚本粘贴到notepad上在存成一个后缀为vbs的文件。最后只要双击运行该文件即可...哈哈,不知道hp的人看了这个提议会不会找俺拼命...

'第一部分测试脚本
Public objIE 'Create object of IE Application

NavWeb "http://www.advancedqtp.com/forums/index.php#1"
WebLink 1, "Automation Frameworks"
WebLink 1, "Welcome to AdvancedQTP Automation Frameworks Board"
CheckContent "Guidelines"

Set objIE = Nothing

'第二部分Function库
'============ Functions ===============
'Make sure the IE page active
Function IEActive()
   Do While objIE.Busy Or (objIE.READYSTATE <> 4)
      Wscript.Sleep 80
   Loop
   WScript.Sleep 80
End Function

'Navigate Website
Function NavWeb(WebAddress)
   Set objIE = CreateObject("InternetExplorer.Application")
   objIE.Visible = True
   objIE.Navigate WebAddress
   IEActive
End Function

'Click the Link
Function WebLink(LinkItemNo, NavLink)
   Dim TotalLinks
   Dim Linkexist
   Dim Item
   Item = 1
   Linkexist = False
   TotalLinks = objIE.Document.Links.Length
   For i=0 To TotalLinks-1
       If Len (NavLink) > 4 Then
          If InStr(LCase(objIE.Document.Links(i).innerHTML), LCase(NavLink)) > 0 Then
              If Item = LinkItemNo Then
                 objIE.Document.Links(i).click
                 Linkexist = True
                 Exit For
              Else
                 Item = Item + 1
              End If
          End If
       Else
          If LCase(objIE.Document.Links(i).innerHTML) = LCase(NavLink) Then
              If Item = LinkItemNo Then
                 objIE.Document.Links(i).click
                 Linkexist = True
                 Exit For
              Else
                 Item = Item + 1
              End If
          End If
       End If
   Next
   If Linkexist = False Then
      Wscript.Echo "Script could not find this link: " & NavLink
      Wscript.Quit
   Else
      IEActive
   End If
End Function

Function CheckContent(CheckText)
   Dim FullText
   FullText = objIE.Document.Body.innerText
   If InStr(LCase(FullText), LCase(CheckText)) = 0 Then
      MsgBox "The " & CheckText & " is NOT existed!"
   Else
      MsgBox "The " & CheckText & " is existed!"
   End If
End Function
回复 支持 反对

使用道具 举报

该用户从未签到

1#
发表于 2011-10-9 09:26:07 | 只看该作者
可以看看我之前发过的帖子里的FrameworkManager的框架,就是基于vbs的,不知道和LZ的有没有相似之处?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-15 09:23 , Processed in 0.067329 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表