51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 3057|回复: 4
打印 上一主题 下一主题

怎么从参数化文件中随机获取参数

[复制链接]
  • TA的每日心情
    开心
    2015-9-7 13:46
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]测试连长

    跳转到指定楼层
    1#
    发表于 2015-6-4 11:04:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 williamlam 于 2015-6-4 13:49 编辑

    例如:录制一个登陆的操作,文件中内容有以下用户名和密码:

    user1,pwd1
    user2,pwd2
    user3,pwd3
    user4,pwd4
    user5,pwd5

    一般使用CSV Data Set Config设置参数都是按照顺序读取的,怎么样设置才能从文件中随机获取而不是顺序获取呢?
    可能有些人会说用函数助手里面的_Random,我也不懂用法,请高手指教,最好要有详细的步骤,拜谢!
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    16 小时前
  • 签到天数: 2669 天

    连续签到: 6 天

    [LV.Master]测试大本营

    2#
    发表于 2015-6-5 10:11:51 | 只看该作者
    人家高手写的程序,思路如下,把参数放到一个excel中,随即读取参数

    '========================================
    '名     称:QTP_ReadExcel
    '作     用:从Excel读数据
    '参     数:sFileName:EXCEL文件名     sSheetName:Sheet表名
    '返回值:把EXCEL变为2维数组返回
    '========================================
    Function QTP_ReadExcel(sFileName,sSheetName)
           Dim oExcel
           Dim oSheet
           Dim oRange
           Dim arrRange

           On Error Resume Next
          ' 创建Excel应用程序对象
           Set  oExcel = CreateObject("Excel.Application")
                  If err.Number <> 0 Then
                         MsgBox "未能初始化Excel" & vbCrLf & "请确保Excel已安装", vbCritical
                         Exit Function
                  End If
           On Error GoTo 0

           On Error Resume Next
          ' 打开Excel文件
           oExcel.Workbooks.Open(sFileName)
            If err.Number <> 0 Then
                   MsgBox "未能加载Excel文件" & vbCrLf & "请确保Excel文件路径正确或格式正确", vbCritical
                   Exit Function
            End If
           On Error GoTo 0

           ' 获取表格的使用范围
           Set  oSheet = oExcel.Worksheets(sSheetName).UsedRange
          ' 获取从A列到Z列,从第1行到第1000行的范围i中的所有值
           Set  oRange = oSheet.Range("A1:Z1000")
          '把Excel数据转换到数组
           arrRange = oRange.Value
          ' 关闭工作簿
           oExcel.WorkBooks.Item(1).Close

           ' 退出Excel
           oExcel.Quit
           Set  oExcel = Nothing
           ' 返回包含Excel数据的数组
           QTP_ReadExcel = arrRange
    End Function

    Dim arrExcel
    arrExcel  = QTP_ReadExcel("D:\test.xls","sheet1")
    Dim randcs
    randcs=RandomNumber(0,1000)
    Dim user
    Dim pwd
    user=arrExcel(randcs,1)
    pwd=arrExcel(randcs,2)

    评分

    参与人数 1测试积点 +10 收起 理由
    lsekfe + 10 恭喜你获得测试积点10

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-9-7 13:46
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]测试连长

    3#
     楼主| 发表于 2015-6-5 10:33:33 | 只看该作者
    完全不懂这个怎么在jmeter中实现
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    16 小时前
  • 签到天数: 2669 天

    连续签到: 6 天

    [LV.Master]测试大本营

    4#
    发表于 2015-6-5 11:28:27 | 只看该作者
    不好意思,给你写错了,以为是在QTP中的了.
    Jmeter中调用参数的函数就那几个,random, csvread,stringformfile,这几个函数读取数据都是按照列取参数,而且好像都是顺序读取的.
    如果你的用户名都是user开头,密码都是pwd开始,可以这样:
    最好自己定义一个变量suiji值为${__Random(0,1000,)}
    使用时直接user${suiji},pwd${suiji}


    user
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-9-7 13:46
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]测试连长

    5#
     楼主| 发表于 2015-6-5 13:54:54 | 只看该作者
    jingzizx 发表于 2015-6-5 11:28
    不好意思,给你写错了,以为是在QTP中的了.
    Jmeter中调用参数的函数就那几个,random, csvread,stringformfil ...

    虽然没能实现预期的,也不知道jmeter能不能实现我所想的,但还是谢谢你,让我知道还能这么用。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-5-11 23:49 , Processed in 0.066083 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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