Robot Framework自动化测试----08使用evaluate关键字实现robotframework与python代码自由

1)evaluate这个关键字在BuiltIn 库里,不用导入robotframework自带的;

1)来看一段python代码:

import wget,os
wget.download(downloadUrl, out=os.path.join(filePath, fileName))  #用这个wget下载一个指定链接的文件并且保存在out参数的目录中

robotframwork中的evaluate实现如下:

 ${path}    evaluate    wget.download('${filedownlink}', out=os.path.join('${savefilepath}','${filename}'))    wget,os

2)第二段python代码:操作一个文件

 python代码:

with open(filepath, 'rb') as f:  
    f.write('world')
  

 以下是evaluate实现

 ${filepath}    Set Variable    C:/Users/####/Downloads/KG_SS_DLJT_PT2.shpzip
#    获取文件    
${file}    Evaluate    open('${filepath}', 'rb')

 (2)列一下今天用到的几个关键字:

1)获取文件长度:Get File Size,在OperatingSystem里不用安装但是要导入

Get File Size    C:/Users/####/Downloads/KG_SS_DLJT_PT2.shpzip     #传文件路径

2)强制转String: Convert To String  ,在BuiltIn库不用导入不用安装

Convert To String    要转的字符

3)读json文件中的字符:

${json}    Get File    C:/Users/###/Desktop/demo.json
${js}    To Json    ${json}      
log    "js的值是:"${js}      #打出来的居然是字典    
${bodyjson}    evaluate    demjson.encode(${js},'utf-8')     #转成json,需要demjson库

(3)记录以下今天踩的坑:

1)我们有一个PUT请内容是一个json字符串,本来全部写在了一个文件中,然后使用demjson转成了json格式可以请求成功的,但是使用的人给我说里面有一个config参数嵌套的json每次都不一样,然后只好把这个config拎出来单独写到json文件,其它参数使用Create Dictionary关键字来组装:

 本来就是json文件里面取出来的,结果图上第一个type出来的结果给我说是一个dict,打印出来用的也是双引号,但是使用Get From Dictionary取不出来报错(说明这根本不是一个dict,只是因为robotframework本身没有json这种数据类型才这样提示的);然后就用了TO Json转,第二个type出来的结果还给我说是一个dict,不过这次变成单引号并且可以使用Get From Dictionary取出对应键的值了;然后终于可以和其它参数组合起来用了

2)还是这个请求,把这些参数组全起来传给一个叫{body}的参数,发送请示报错,看了一下参数key和value都是单引号,然后又用demjson转了一次json,请求成功了;

但是header部分也是字典格式为什么不用转json可以成功?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值