robot framework生成随机数或随机字符串(Evaluate)

前言:经常会碰到做边界值测试时,可能需要输入长整型以内的数字或者字符长度不超过500的字符串,如果手动去输入很费时间,这时就可以利用robot framework自动化实现,提高测试执行效率。(PS. 当然也可以巧妙地用excel的RAND()函数啦)

方法1

keyword(关键字)用String library提供的Generate Random String,可以参考robotframework官网提供的示例使用。
http://robotframework.org/robotframework/latest/libraries/String.html#Generate%20Random%20String

string

方法2

keyword(关键字)用Evaluate,可以参考robotframework官网提供的示例再自定义修改代码。
http://robotframework.org/robotframework/latest/libraries/BuiltIn.html

搜索rand在页面查找.png

代码如下:

*** Test Cases ***

1. 生成指定数据范围的随机数字
    ${phoneNumber}    Evaluate    random.randint(18220180000,18220189999)    random

2. 生成指定长度的随机字符串(仅由大小写字母组成)
    ${str}  Evaluate    string.ascii_letters    string    #获取由26个小写英文字母和26个大写字母组成的字符串
    ${len}  Evaluate    len("${str}")    #所有大小写字母组成的字符串长度是52
    ${num}  Set Variable   500   #指定随机生成的字符串长度为500
    ${newstr}   Set Variable   ${Empty}    #定义随机生成的字符串变量名
    :FOR    ${index}    IN RANGE    ${num}    
    \   ${i}    Evaluate    random.randint(0,int(${len})-1)    random    
    \   ${tmp}  Set Variable    ${str[int(${i})-1]}    #从52个大小写字母组成的字符串中随机获取一个元素
    \   ${newstr}   Set Variable    ${newstr}${tmp}    #将获取的字母追加到随机字符串
    Log     ${newstr}    #打印随机生成的字符串

3. 生成固定长度的由大小写字母和数字随机组合的字符串
    ${letters}=    Evaluate    "".join(random.sample(string.letters+string.digits,50))    random,string #指定字符串长度为50
    log    ${letters}

设置比较大时会报错,比如把第3个脚本里的长度50改成100,就会出现下面这种错误。
Evaluating expression '"".join(random.sample(string.letters+string.digits,999))' failed: ValueError: sample larger than population


参考博文
http://www.cnblogs.com/maxiaotu/p/6830322.html (还有指定其他类型的字符串示例)
https://blog.csdn.net/jcwang710448116/article/details/78645513(第1、2个脚本参考)
https://blog.csdn.net/fengqingting2/article/details/17224481(第3个脚本参考)
https://blog.csdn.net/WHACKW/article/details/49459521(Evaluate实例)

你可能感兴趣的:(robot framework生成随机数或随机字符串(Evaluate))