51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

12
返回列表 发新帖
楼主: linvsfen00
打印 上一主题 下一主题

[原创] 帮忙看一下脚本,如何才能登记哪条记录删除哪条记录?

[复制链接]

该用户从未签到

21#
发表于 2007-5-15 17:14:01 | 只看该作者
看了你在一楼的截图!发现一个name为aaa1而另一个为aaa2!不知道你的系统中能不能输入姓名相同的通迅记录!要是不能的话,问题就比较好解决了!
回复 支持 反对

使用道具 举报

该用户从未签到

22#
 楼主| 发表于 2007-5-15 18:13:11 | 只看该作者

回复 #21 stone821021 的帖子

可以输入姓名相同的记录,唯一值是id,而不是姓名,id是点击保存时自动生成的
回复 支持 反对

使用道具 举报

该用户从未签到

23#
 楼主| 发表于 2007-5-15 18:22:09 | 只看该作者
原帖由 Dorpnight 于 2007-5-15 16:34 发表
是啊,我就是看到你用SetTOProperty 所以断定你不可能取到ID

你可以先再数据库里验证添加成功,记录ID;然后做完删除动作后,在到数据库里验证这个ID是否存在

你取出ID然后付给相应的语句这样作意义不大,你测 ...



我想知道如何再数据库里验证添加成功?也不知道怎么记录ID?

做完删除动作后,在到数据库里验证这个ID是否存在,怎么验证?
回复 支持 反对

使用道具 举报

该用户从未签到

24#
发表于 2007-5-16 09:47:26 | 只看该作者
如果你的ID是依次递增的话,可以在添加数据以前用sql语句从数据库中读出id最大的那条记录,然后记录下这个ID,在添加完数据以后再从数据库里取出此时id最大的那条记录,记录相应ID, 然后比较这两个ID的值,如果相等的话,则说明添加不成功,如果大的话,那么就说明添加成功了,(前提是你必须要有一个关键字段可以判断数据库里的数据那个才是最新加进去的,比如说日期呀,ID呀(ID随机生成的话应该无法判断的)).然后,在删除界面再根据这个ID去删除相应的记录!
具体怎么实现你应该再想一想!sdlkfj2
回复 支持 反对

使用道具 举报

该用户从未签到

25#
 楼主| 发表于 2007-5-16 11:41:09 | 只看该作者

回复 #24 stone821021 的帖子

ID不是依次递增的,相应的两条记录生成的id如下:
c562c8a3bf214df0a08a6a973bfa5091
f511d4744f4b4cd89898ea1eec4a8de1

这样的话,按您的方法不能实现啊
回复 支持 反对

使用道具 举报

该用户从未签到

26#
发表于 2007-5-16 12:02:24 | 只看该作者
我曾经遇到过这种,我是这样取ID的,不知道是不是和你的一样。因为我看不到你的图片:
Dim strUserid,id,strId
      id=Browser("系统维护").Page("系统维护").Frame("用户列表").Link("text:="&strlid,"html tag:=A").GetROProperty("url") '在url这个属性值中存在我需要删除记录的ID信息
     strId=Mid (id,instr(1,id,"=")+1)  '这一步是把需要的id值取了出来
     strUserid =strId  'strUserid是我要删除的记录前的复选框属性值当中的ID信息
     Browser("系统维护").Page("系统维护").Frame("DetailInfo_9").WebCheckBox("value:="&strUserid).Set "ON")  ’这样就把想删除的记录选中了。
  Browser("系统维护").Page("系统维护").Frame("DetailInfo_9").WebButton("删 除").Click '这样就删除掉啦。

[ 本帖最后由 雪竹莲 于 2007-5-16 12:12 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

27#
发表于 2007-5-16 12:07:44 | 只看该作者

回复 #25 linvsfen00 的帖子

我觉得你要变通一下,和26楼的一样,要找到添加页面,删除页面,还有数据库的相应表中,能够确定三者关系的东西!ID不能判断就不要用ID了.可以用其它的参数值,因为看不要你的系统,所以大家说的时候也只是提供一些思路!
回复 支持 反对

使用道具 举报

该用户从未签到

28#
 楼主| 发表于 2007-5-16 15:23:34 | 只看该作者

回复 #26 雪竹莲 的帖子

如果我的url是:
url="http://192.168.0.21:8088/addressAction.do?operate=viewAddress&addressId=bfabba1273c245e0a3cfe8c664fa5ff4"

我如何把“bfabba1273c245e0a3cfe8c664fa5ff4”addressId取出来?

这语句是怎么使用的?strId=Mid (id,instr(1,id,"=")+1)

[ 本帖最后由 linvsfen00 于 2007-5-16 15:30 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

29#
发表于 2007-5-16 15:45:37 | 只看该作者
要取addressID可以这样做:
Str="http://192.168.0.21:8088/addressAction.do?operate=viewAddress&addressId=bfabba1273c245e0a3cfe8c664fa5ff4"
AddressID=Right(Str,Id.length)


Mid(string, start[, length])
Mid 函数的语法有以下参数:
参数描述
string字符串表达式,从中返回字符。如果 string 包含 Null,则返回 Null
startstring 中被提取的字符部分的开始位置。如果 start 超过了 string 中字符的数目,Mid 将返回零长度字符串 ("")。
length要返回的字符数。如果省略或 length 超过文本的字符数(包括 start 处的字符),将返回字符串中从 start 到字符串结束的所有字符。


多查资料呦!楼主!

[ 本帖最后由 stone821021 于 2007-5-16 15:48 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

30#
 楼主| 发表于 2007-5-16 16:04:32 | 只看该作者

已经取出id,谢谢楼上的

已经取出id,谢谢楼上的,

只是我的url在增加和删除里都没有,这个url是我在查看该新增记录页面取得的。
回复 支持 反对

使用道具 举报

该用户从未签到

31#
 楼主| 发表于 2007-5-16 16:08:16 | 只看该作者

回复 #29 stone821021 的帖子

AddressID=Right(Str,Id.length)

id的length因为不是固定的,所以该方法取得的值不对,

strId=Mid (id,instr(60,id,"=")+1)
回复 支持 反对

使用道具 举报

该用户从未签到

32#
 楼主| 发表于 2007-5-16 16:10:11 | 只看该作者

回复 #26 雪竹莲 的帖子

谢谢雪竹莲,按您的方法:strId=Mid (id,instr(60,id,"=")+1)
可以取得id

只是我的url在增加和删除里都没有,这个url是我在查看该新增记录页面取得的。
回复 支持 反对

使用道具 举报

该用户从未签到

33#
发表于 2007-5-16 16:36:16 | 只看该作者

回复 #32 linvsfen00 的帖子

我从URL中取是因为在查看对象属的时候看到在URL这一项中存在我所需要的ID。你可以根据你的对象属性看一下哪一个属性中是存在你所需要的ID信息,并且能够取出来,你就使用那个属性就可以了。:)
回复 支持 反对

使用道具 举报

该用户从未签到

34#
发表于 2007-5-16 16:40:33 | 只看该作者
在添加页面取出你输入的数据,然后做为参数传入SQL语句,查找出与新加记录的对应的那个ID!
例如:
select id from table where name="..",phone:=".."....
回复 支持 反对

使用道具 举报

该用户从未签到

35#
 楼主| 发表于 2007-5-16 17:24:51 | 只看该作者

回复 #33 雪竹莲 的帖子

恩,我知道,如果我只是做添加和删除操作的话就无法取得url,
所以我现在取得的url是添加完记录,查看记录,然后才进行删除

url是查看页面取得的,学到不少
回复 支持 反对

使用道具 举报

该用户从未签到

36#
 楼主| 发表于 2007-5-16 17:38:14 | 只看该作者

回复 #34 stone821021 的帖子

谢谢stone821021。
这个方法已经实现,
从数据库中取值:
id="select id from table where name="aaa1""
只不过现在只按名称取值然后再执行,也可以参数传入SQL语句执行

Browser("测试登录").Page("办公自动化系统").Frame("mainFrame").WebCheckBox("value:="&id).Set "ON",就可以实现

如何把变量值输出到datatable中?
比如 Dim mm
mm=Browser("测试登录").Page("办公自动化系统").Frame("mainFrame").GetRoProperty("Value")
如何把它输出到datatable中,现在查看只能 MsgBox mm
回复 支持 反对

使用道具 举报

该用户从未签到

37#
发表于 2007-5-16 17:45:24 | 只看该作者
我之所以让你多选几个参数传入到sql语句中,是因为你前面说name值可以重复,你这只传name的话,要是输入了多个name相同的记录会出错的.不防多加几个参数确保sql执行后,
id的值唯一,而不是一个集合.

要把mm输出到dataTable中可以试试 DataTable.value(column_name,sheet_name) =mm
通过你的提问可以发现,你很少看QTP 的帮助,想学好QTP还是要多看帮助的.sdlkfj2
回复 支持 反对

使用道具 举报

该用户从未签到

38#
 楼主| 发表于 2007-5-16 17:58:04 | 只看该作者

回复 #37 stone821021 的帖子

现在服务器出现问题停,明天准备试试多选几个参数传入到sql语句中,

因为刚学qtp了解得不多,呵呵,谢谢stone821021
回复 支持 反对

使用道具 举报

该用户从未签到

39#
 楼主| 发表于 2007-5-17 10:54:16 | 只看该作者

回复 #37 stone821021 的帖子

今天试试多选几个参数传入到sql语句中,正确删除要删除的记录,呵呵,问题解决
回复 支持 反对

使用道具 举报

该用户从未签到

40#
发表于 2007-5-18 15:17:00 | 只看该作者

newer

测试脚本一般是用什么语言编写的呀有没有专用的测试语言啊还是在测试工具中编写么?是不是不同的工具有不同的测试脚本语言
邮箱:gzlqm@yahoo.com.cn
新手希望能帮哦谢谢
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-24 20:07 , Processed in 0.083791 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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