Robotframework 通过robot框架循环mongodb中的文档

Robotframework 通过robot框架循环mongodb中的文档,robotframework,Robotframework,我已经导入了MongoDBLibrary,我们可以使用下面的关键字在Robot框架中从MongoDB检索数据 Retrieve All Mongodb Records Retrieve Mongodb Records With Desired Fields Retrieve Some Mongodb Records 在使用上述关键字之一获得记录之后,我想遍历文档并进行一些验证 我的问题如下 ${result}=检索具有所需字段${MDBName}{MDBCollection}${mQuery}

我已经导入了
MongoDBLibrary
,我们可以使用下面的关键字在Robot框架中从MongoDB检索数据

Retrieve All Mongodb Records
Retrieve Mongodb Records With Desired Fields
Retrieve Some Mongodb Records
在使用上述关键字之一获得记录之后,我想遍历文档并进行一些验证

我的问题如下

${result}=检索具有所需字段${MDBName}{MDBCollection}${mQuery}${mRFields}${misReturnID}的Mongodb记录

示例输出将为:${result}包含

[(u'profileDetails',{u'basicDetails':{u'customerCode':u'C037799'})][(u'profileDetails',{u'basicDetails':{u'customerCode':u'c00092'})]

在上述结果中-

[(u'profileDetails',{u'basicDetails':{u'customerCode:u'C037799'})]
是第一条记录

[(u'profileDetails',{u'basicDetails':{u'customerCode':u'c00092'})]
是第二条记录

我想把上面的
结果
分成一个
列表

我试图将
结果
捕获为
列表
,它给出了一个错误
无法设置变量“@{result}”:应为类似列表的值,获取字符串


如何遍历文档/记录是一个结果。

由于返回的值是字符串格式的,因此我尝试了下面的代码片段来处理结果字符串以获得列表

*** Settings ***
Library  String
Library  Collections

*** Variables ***
${result}  [(u'profileDetails', {u'basicDetails': {u'customerCode': u'C037799'}})][(u'profileDetails', {u'basicDetails': {u'customerCode': u'C000092'}})]

*** Test Cases ***
Manipulate String and convert to list
    ${result1}=  Replace String  ${result}  ][   ]],[[
    @{res_list}=  Split String  ${result1}  ],[
    Remove Values from list  ${res_list}    ${EMPTY}
    Log To Console  ${res_list}


##Output : ["[(u'profileDetails', {u'basicDetails': {u'customerCode': u'C037799'}})]", "[(u'profileDetails', {u'basicDetails': {u'customerCode': u'C000092'}})]", "[(u'profileDetails', {u'basicDetails': {u'customerCode': u'C037855'}})]", "[(u'profileDetails', {u'basicDetails': {u'customerCode': u'C037784'}})]", "[(u'profileDetails', {u'basicDetails': {u'customerCode': u'C037642'}})]"]

感谢Sarada改进了答案,使之适合您的用例

因为返回的值是字符串格式,所以我尝试了下面的代码片段来操作结果字符串以获得列表

*** Settings ***
Library  String
Library  Collections

*** Variables ***
${result}  [(u'profileDetails', {u'basicDetails': {u'customerCode': u'C037799'}})][(u'profileDetails', {u'basicDetails': {u'customerCode': u'C000092'}})]

*** Test Cases ***
Manipulate String and convert to list
    ${result1}=  Replace String  ${result}  ][   ]],[[
    @{res_list}=  Split String  ${result1}  ],[
    Remove Values from list  ${res_list}    ${EMPTY}
    Log To Console  ${res_list}


##Output : ["[(u'profileDetails', {u'basicDetails': {u'customerCode': u'C037799'}})]", "[(u'profileDetails', {u'basicDetails': {u'customerCode': u'C000092'}})]", "[(u'profileDetails', {u'basicDetails': {u'customerCode': u'C037855'}})]", "[(u'profileDetails', {u'basicDetails': {u'customerCode': u'C037784'}})]", "[(u'profileDetails', {u'basicDetails': {u'customerCode': u'C037642'}})]"]
感谢Sarada改进了答案,使之适合您的用例

*设置* 库字符串 图书馆藏书

*变量* ${result}[(u'profileDetails',{u'basicDetails':{u'customerCode:u'C037799'})][(u'profileDetails',{u'basicDetails':{u'customerCode:u'c00092'}]

*测试用例* 操纵字符串并转换为列表 ${result}评估[在$result中为x列出(x)] 日志${result}

*设置* 库字符串 图书馆藏书

*变量* ${result}[(u'profileDetails',{u'basicDetails':{u'customerCode:u'C037799'})][(u'profileDetails',{u'basicDetails':{u'customerCode:u'c00092'}]

*测试用例* 操纵字符串并转换为列表 ${result}评估[在$result中为x列出(x)]

Log${result}

你能告诉我“${result}”变量中存储了什么值吗?你好,阿卡什,
${result}
的值是
[(u'profileDetails',{u'basicDetails':{u'customerCode':u'C037799'})][(u'profileDetails',{u'basicDetails':{u'customerCode u'c00092'}]/code>以及你应该如何修改结果(列表)看起来像?或者像逗号分隔的`[(u'profileDetails',{u'basicDetails':{u'customerCode':u'C037799'}]),[(u'profileDetails',{u'basicDetails':{u'customerCode':u'c00092'}]),然后我可以对每个记录和进程进行分析,我认为下面的代码应该会有所帮助。如果你想保留方括号,你可以用“]”替换它们,然后用拆分。你能告诉我“${result}”变量中存储了什么值吗?嗨,阿卡什,
${result}
的值是
[(u'profileDetails',{u'basicDetails':{u'customerCode:u'C037799'})][(u'profileDetails',{u'basicDetails':{u'customerCode':u'C000092'}})
以及修改后的结果(列表)应该是什么样子?可以是逗号分隔的。`[(u'profileDetails',{u'basicDetails':{u'customerCode':u'C037799'}],[(u'profileDetails',{u'basicDetails':{u'customerCode':u'C000092'}]'然后我可以使用每个记录和进程,我认为下面的代码应该会有所帮助。如果您想保留方括号,可以用“]”替换它们,然后用拆分。嗨,waman,这不起作用,因为在数组中的一些输入中
[…]
也不仅仅在开始和结束时出现。这些记录是否有特定的格式?这样我们就可以基于模式操纵它们。hi waman,我找到了解决方案,根据我的结果如何,稍微改变一下您的逻辑。我可以编辑您的答案吗?hi waman,这不起作用,因为在数组中的一些输入中
[..]
不仅在开头和结尾都有。这些记录是否有特定的格式?这样我们就可以根据模式操作它们。Hi waman,我找到了解决方案,根据我的结果,稍微改变一下你的逻辑。我可以编辑你的答案吗?你可以添加一些解释来澄清你的答案吗?你可以添加s吗一些解释来澄清你的答案。