rf 遍历列表_RF学习笔记
1.Create session关键字创建的会话,如果后面的请求(post或get)沿用这个会话,则会继承会话的sessionid等。可以用来做登录操作,后面其他的请求不用再登录,就能通过验证。
2.上传文件的请求,请求头中不能添加Content-Type=application/x-www-form-urlencoded,否则,上传会失败。因此,setup中的登录请求,不要加请求头,在具体的请求中再添加。
3.RF中for用法:
:FOR
${i}
in range
2
10
log
${i}
Exit for loop if
${i} ==4
4.RF中使用python语句时,注意变量类型的转变。在RF中所有的变量不用加引号就表示为String类型,比如${v1}=myname,如果在python语句中引用时,一定要在变量上加上单引号或双引号,才表示是字符串,如${v2} evaluate“${v1}” + “is”。
5.RF中http请求的响应结果是json字符串(python requests库的响应结果为bytes,需要解码为字符串,res.content.decode(“UTF-8”))。
6.在RF中,如果变量为字符串,在语句中把变量当做python语句来执行时,要将变量加上引号,最好是三引号,防止字符串本身含有单引号或双引号出错。如a =“Thit’s all right”,${b} evaluate ‘’’${a}’’’.find(“all”)
7.Python2中编码问题比较复杂,而robotframework又支持python2,因此RF在处理中文时,会出现很多编码问题。
(1)比如,从py文件中读取变量,变量含有中文。这时,应该在变量前加一个u,表示unicode字符串,这样,读取到RF中就会根据系统的默认编码,将unicode变量转换成正常的中文显示。
support_files = u'E:/测试用文件/压缩文件/ALM测试管理介绍V1.2.7z'
(2)如果是获取操作系统的路径,路径中有中文,需要将路径用GBK解码成unicode。
${p} evaluate os.getcwd().decode('GBK') os
E:/测试用文件/压缩文件/ALM测试管理介绍V1.2.7z #解码的显示
E:\\xbc\xbc\xca\xf5\xce\xc4\xb5\xb5\RF\xcf\xe0\xb9\xd8\STD_UI\xd7\xd4\xb6\xaf\xbb\xaf\STD_UI3
(3)RF导入variables,variables是python文件,在py文件中不能打印非GBK编码的字符串,否则导致RF程序错误,其他无关的用例也无法运行,无法显示日志。
8、RF中分支判断的用法(ELSE,ELSE IF必须要大写,不然不能识别):
${day1}
Run Keyword If
${day}'.startswith('0')
evaluate
${day}'[1]
ELSE
evaluate
${day}
9、RF中编写上传文件的接口,如果请求中不填headers,data用字典格式也可以用字符串,如果headers不为空时,就需要把字符串转换成Json格式(RF中Json和字典的类型都是dict),不然会报错:ValueError: Data must not be a string
${data1}
to json
${data1}
${res}
Post Request
api2
/zte-km-cloududm-core/docUpload/sendData
${data1}
files=${file}
headers=${header}
10、如何获取列表中的值。${s} = [1, [2, 3, 4] ,5]。如果以变量方式取:${s[1][1]},如果以列表方式取:@{s[1]}[1],如果以列表方式取一维的第2个元素:@{s}[1]。如果在for循环中遍历,则必须以列表方式来获取:FOR ${i} IN @{s}
11、RF中post接口传参数data有几种方式:(1)直接在参数的位置填写Json格式参数(空是null不是None),如:post uri {"name":"Lily",”age”:null};(2)先创建字典,再将字典放在位置参数处(这时候,空是None),如:${data} create dictionary {"name":"Lily",”age”:None},post uri ${data}
Post接口传递参数中如果有中文,且中文为关键参数,会报“'latin-1' codec can't encode characters”。requests传递body参数可以是json也可以是json转换之后的二进制。对此有两种办法:1)转换成unicode,payload=json.dumpps(payload);2)转换成二进制,payload=’ {"name":"小丽",”age”:null}’,payload=payload..encode(“UTF-8”)。如果本来就行json,则payload=payload.encode("unicode_escape").decode("UTF8")
12、RF中post接口传参数params有2种方式:(1)直接在URL中传;(2)在params中(目前测试的在params中传失败)
13、RF中get接口params参数传递有几种方式:(1)直接在uri问号后面放参数,如:get /deleteModule?${id};(2)以字典的方式传递,如:${param} create dictionary {"id":"0012"},get/deleteModule ${param}
14、Http传参数总结:Post接口的data参数是json格式字符串,如果传入一个字典格式的参数,会自动转化为json传入;get接口的params是字典格式参数,如果传入json串会直接报错。
15、RF中接口接受的参数都是字符串格式,如果像列表、字典传入进来要当做列表或字典处理,需要先转换为python的变量(用loads或evaluate,视情况而定)。param1 = [1,2,4],param2 = {“name”:”Lily”},p1 = loads(param1),p2 evaluate param2.
16、RF中可以进行自定义关键字,文件放在路径:%Python%\Lib\site-packages。需要注意:文件的名称和类的名称要一模一样。在类中自定义函数,可以添加说明。文件放在正确路径下后,需要重启RF,有时需要重启两遍。然后按F5查看。注意:当自定义文件有语法错误,或者依赖的包不存在时,RF中引用失败。
17、Json字符串中只能使用双引号,不能使用单引号,比如:
j = {“namelist”:[‘10237221’]}是错误的,应该用:j = {“namelist”:[“10237221”]}
18、RF中创建字典有两种方式:
1)${d} create ditctionary name=Lily;
2)${d} evaluate {“name”:”Lily”}。
字典中取值有两种方式:
1)${d[“name”]};
2)${dv} get from dictionary ${d} name。
错误的方式:&{d}[“name”] 或&{d[“name”]}
19、RF中创建列表有两种方式:
1)${l} create list 1 2 5 7;
2)${l} evaluate [1,2,5,7]。
根据下标取列表中的值有三种方式:
1)${l[1]};
2)@{l}[1];
3)${lv} get from list ${l} 1
遍历列表中的值时,必须用@{l} :FOR ${i} in @{l}
20、RF中自定义函数,函数有返回值时,需要在RF里面判断返回是否为空或False,使用关键字Run Keyword If。如果函数返回的是json串时,json可能为空,当为空时判断为false。那么在自定义函数中,当json为空时,就不能返回False或直接return(之间return时返回的是None),判断时,语句为:Run Keyword If not‘${flag}’ fail,需要将变量用单引号引起来,不然返回不为空时,会将返回的字符串视为变量,而报变量未定义的错误。因为用引号引起来,如果返回False或None时,结果视为字符串了。
21、RF内置库路径:D:\Python27\Lib\site-packages\robot\libraries,比如collections、builtIn、datetime
22、引用python库:
${sqlstr} evaluate re.sub(r'dm_count_by_type_14_2','${dm_name}',"${sqlstr}") re
rf 遍历列表_RF学习笔记相关推荐
- rf 遍历列表_RF的变量list在For循环的用法,试错中学习
test.robot: FOR 循环要注意: 关键字:FOR IN END必须大写,且END 需必写,中间的空格都是两个或两个以上 如果用到IN RANGE 中间的空格是1个 *** Variabl ...
- rf 遍历列表_RF之关键字、变量、循环
软件测试 RF之关键字.变量.循环 关键字的使用: RF的能力是由关键字提供的,所以,我们必须对RF的常用关键字有个了解 . 其中Builtin是标准库中的内置库,Shotcuts Keywords就 ...
- rf 遍历列表_RF断言总结
原文链接在这里 断言总结: should contain . should not contain 与should contain x times should contain {list_b} 1. ...
- python中如何创建一个空列表_Python学习笔记(1):列表的四种创建方法
我的电脑安装的是Anaconda 3开源的Python发行版本,其中是集合3.6版本的Python与可视化编程工具采用的是Spyder. 打开Spyder可视化工具,新建一个空白文件,做好备注为&qu ...
- python元组读取到列表_Python 学习笔记(1)Python容器:列表、元组、字典与集合...
Python容器:列表.元组.字典与集合 列表: 1.列表 的创建 使用[ ] 或者list()创建列表:empty_list = [ ] 或者 empty_list= list() 使用list() ...
- [学习笔记] ES6的数组遍历方式 for, forEach,for...in, for...of
javascript ES6有如果要遍历一个数组,我们有多个方式可以进行. 下面我们来分析一下各自的利弊. for循环 const langs = ['java', 'php', 'c++', 'py ...
- 2022年Java学习笔记目录
一.2022年Java任务驱动课程 任务驱动,统摄知识点:2022年Java程序设计讲课笔记 二.2022年Java学习笔记 (一)踏上Java开发之旅 Java学习笔记1.1.1 搭建Java开发环 ...
- Python学习笔记之洗牌顺牌
一.系列缘由 作为一名运维工程师,也一直有一个学习开发的想法,值此之际,不知道博客的下一期目标在哪里,在这思考和犹豫的间隙想着学习和充实一下自己,学习一下python语言,python随着大数据和 ...
- python dict遍历_Python学习笔记:19个pythonic编程习惯,让你的Python入门更优雅
Python最大的优点之一就是语法简洁,好的代码就像伪代码一样,干净.整洁.一目了然. 要写出 Pythonic(优雅的.地道的.整洁的)代码,需要多看多学大牛们写的代码,github 上有很多非常优 ...
- Python3 基础学习笔记 C03【操作列表】
CSDN 课程推荐:<8小时Python零基础轻松入门>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python:轻松入门& ...
最新文章
- 打开数“智”化之门,一字之差带来的思考
- python可以干什么工作-Python学完工作不好找?看看数据分析可视化都可以做什么...
- 《JavaScript面向对象编程指南》—第128页错误指正
- 【HDU - 6184】Counting Stars(三元环计数,二分,优化暴力,O(m*sqrt(m)),图论)
- 数据分析常用的python包_量化投资数据分析之常用的python包(附代码)
- vs在linux下的环境搭建,linux下vscode环境配置
- 战地1服务器性能红色,FPS《战地1》PC性能测试:对显卡要求不高但很吃CPU
- LINUX下载及编译libtool
- python绘制wx+b_【教学分享】大数据博士教你用python玩转时空大数据
- Sicily 1049. Mondriaan 解题报告
- 数字信号C语言——平均分布随机数
- cf鼠标宏数据大全_游戏鼠标中的跑车,贱驴125M游戏鼠标体验!
- 谈谈 JDK 和 SAPMachine 的关系
- android api 完整翻译之Contacts Provider (学习安卓必知的api,中英文对照)
- arcmap 坡降工具_ArcHydro_Toolbar_In_Arcmap Arcgis水文分析工具具体的操作 - 下载 - 搜珍网...
- Python编写工资计算器
- 微信小游戏代码热更(转载)
- iOS 开发 code sign 代码签名深入剖析
- 【美】纳西姆·尼古拉斯·塔勒布 - 随机生存的智慧(2013年7月16日)
- 怎么对注册表中的垃圾文件进行清理?
热门文章
- winform利用html开发,Winform开发框架之HTML编辑控件介绍
- PostGIS导入shp数据
- 电商直播运营的思路流程
- faster rcnn源码解析1
- html css实验6,(实验六DivCSS网页布局.doc
- ps新手秒变大师必备的Ps插件全在这!(mac版本)
- 技术员 Ghost Win 10(X86/X64)企业加强版201804
- java项目技术方案_JavaWeb应用开发项目设计方案.doc
- Ext2、Ext3、Ext4的区别
- 基于ssm的宠物医院信息管理系统 java毕业设计源码介绍