软件测试Robot Framework测试框架软件测试职业探索

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

2018-09-12  本文已影响17人  Yvanna_15

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

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
    ${len}  Evaluate    len("${str}")
    ${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]}
    \   ${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实例)

上一篇下一篇

猜你喜欢

热点阅读