【问题标题】:Robotframework: How to read a random row in csv file?Robotframework:如何读取 csv 文件中的随机行?
【发布时间】:2016-11-10 21:12:00
【问题描述】:

我在 python 中编写了这段代码来读取 CSV 文件中的一行:

import csv

class CsvLibrary(object):
    ROBOT_LIBRARY_SCOPE = 'Global'

    def __init__(self):
        print 'Read Cell Value in CSV File'

    def read_cell_value_by_row(self,filename,rownumber):
        #read an existing csv file
        userdata=[]
        user={}
        with open(filename,'rb') as csvfile:
            #read csv file as dictionary object
            reader=csv.DictReader(csvfile)
            #read and store it as list of dictionary items
            userdata=list(reader)
            #get specific list item as a dictionary object
            user=userdata[rownumber-1]
            #return the dictionary object
            return user

然后在robotframework中我做这个脚本:

    ${row_number}=    Convert To Integer    1
    ${user_info}=    read_cell_value_by_row    UserInfo.csv    ${row_number}
    ${username}    Get From Dictionary    ${user_info}    username
    Log    ${username}
    ${password}    Get From Dictionary    ${user_info}    password
    Log    ${password}
    Input Text    ${login_username_textbox}    ${username}
    Input Text    ${login_password_textbox}    ${password}

但我不知道如何读取 CSV 文件中的随机行,有人可以帮助我吗?

【问题讨论】:

  • 在同一个python文件中,干脆写一个“get_random row”方法,可以作为keyword_使用?生成一个介于零和数据长度之间的随机数,并将其用作返回行的索引。

标签: csv robotframework


【解决方案1】:

您似乎已经完成了大部分工作,您只需要生成随机数吗?为简单起见,我建议使用字符串库,但您需要控制数字以确保其在您想要的范围内。

http://robotframework.org/robotframework/latest/libraries/String.html

${RANDOM_NUMBER}=    Generate Random String    2    [NUMBERS]

上面将提供一个介于 00 和 99 之间的数字,当然要确保处理 00。

如果您需要唯一编号,我通过搜索找到了一个非常好的替代方案,来自 @ombre42 - Robot Framework: Generating Unique Random number

不过,听起来您并不需要它们是独一无二的。

【讨论】:

  • 感谢您的参考。假设有固定范围的行可供选择,我认为 random.sample 路线是要走的路。因此,如果单元格索引从 1 开始并且您有 ${row count} 行,我会做 ${random row}= Evaluate str(random.choice(range(1, ${row count} + 1))) 随机。或等效的 ${random row}= Evaluate str(random.choice(range(0, ${row count})) + 1)
  • @ombre42 我正在尝试读取随机行,然后将这些值放入机器人框架的输入中,但我遇到了一些问题......你能帮我,告诉我什么是错了吗?
猜你喜欢
  • 2012-06-04
  • 1970-01-01
  • 2016-11-09
  • 1970-01-01
  • 1970-01-01
  • 2013-04-29
  • 1970-01-01
  • 2020-03-08
相关资源
最近更新 更多