【问题标题】:generate DOB in robotframework using FakerLibrary使用 FakerLibrary 在机器人框架中生成 DOB
【发布时间】:2021-08-28 04:17:03
【问题描述】:

我的目标是为 web 服务编写测试用例,其中还验证了用户的年龄输入(服务资格)。我有一个请求 XML,我在其中填写出生日期如下;

${updatedXml}=  Set Element Text    ${root}    ${randomDob}               xpath=.//birthdate

现在,为了填写出生日期 (randomDob),我使用了 Get Current Date 函数,并带有增量:

${birthdate}=   Get Current Date    result_format=%Y-%m-%d    increment=-6391day

但是,这并不能使它“真正”随机。我宁愿以这种方式使用 FakerLibrary.date_of_birth:

${randomDob}=    FakerLibrary.date_of_birth     minimum_age=14  maximum_age=17

现在 fakerlibrary 的这个函数的输出似乎是 python datetime.date(通过评估验证),但我无法使用它来填充我的 xml 元素中的变量:

TypeError: cannot serialize datetime.date(2004, 3, 27)(输入日期)

当我将它记录到控制台时,我得到:

2004-03-27

如何将输出转换为普通字符串,以便用它填充 XML 元素? 我试过“转换为字符串”,但这似乎不起作用。

【问题讨论】:

    标签: python robotframework faker


    【解决方案1】:

    使用Convert Date 将其转换为所需格式的字符串:

    ${randomDob}=    Convert Date    ${randomDob}    result_format=%Y-%m-%d
    

    【讨论】:

    • 嗨,Todor,现在我得到:ValueError:不支持的输入“1959-01-19”。我错过了什么吗?
    【解决方案2】:

    您得到的 ValueError: Unsupported input '1959-01-19' 是因为您传递给 Convert Date 的数据对象不是 supported formats 之一。

    我使用的解决方案是在变量之后添加时间:

    ${randomDob}=    Convert Date    ${randomDob} 00:00:00    result_format=%Y-%m-%d
    

    【讨论】:

      猜你喜欢
      • 2017-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-25
      • 2018-04-25
      • 1970-01-01
      • 2019-06-23
      • 2016-03-01
      相关资源
      最近更新 更多