(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可以成功?