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学习笔记相关推荐

  1. rf 遍历列表_RF的变量list在For循环的用法,试错中学习

    test.robot: FOR 循环要注意: 关键字:FOR  IN END必须大写,且END 需必写,中间的空格都是两个或两个以上 如果用到IN RANGE 中间的空格是1个 *** Variabl ...

  2. rf 遍历列表_RF之关键字、变量、循环

    软件测试 RF之关键字.变量.循环 关键字的使用: RF的能力是由关键字提供的,所以,我们必须对RF的常用关键字有个了解 . 其中Builtin是标准库中的内置库,Shotcuts Keywords就 ...

  3. rf 遍历列表_RF断言总结

    原文链接在这里 断言总结: should contain . should not contain 与should contain x times should contain {list_b} 1. ...

  4. python中如何创建一个空列表_Python学习笔记(1):列表的四种创建方法

    我的电脑安装的是Anaconda 3开源的Python发行版本,其中是集合3.6版本的Python与可视化编程工具采用的是Spyder. 打开Spyder可视化工具,新建一个空白文件,做好备注为&qu ...

  5. python元组读取到列表_Python 学习笔记(1)Python容器:列表、元组、字典与集合...

    Python容器:列表.元组.字典与集合 列表: 1.列表 的创建 使用[ ] 或者list()创建列表:empty_list = [ ] 或者 empty_list= list() 使用list() ...

  6. [学习笔记] ES6的数组遍历方式 for, forEach,for...in, for...of

    javascript ES6有如果要遍历一个数组,我们有多个方式可以进行. 下面我们来分析一下各自的利弊. for循环 const langs = ['java', 'php', 'c++', 'py ...

  7. 2022年Java学习笔记目录

    一.2022年Java任务驱动课程 任务驱动,统摄知识点:2022年Java程序设计讲课笔记 二.2022年Java学习笔记 (一)踏上Java开发之旅 Java学习笔记1.1.1 搭建Java开发环 ...

  8. Python学习笔记之洗牌顺牌

    一.系列缘由   作为一名运维工程师,也一直有一个学习开发的想法,值此之际,不知道博客的下一期目标在哪里,在这思考和犹豫的间隙想着学习和充实一下自己,学习一下python语言,python随着大数据和 ...

  9. python dict遍历_Python学习笔记:19个pythonic编程习惯,让你的Python入门更优雅

    Python最大的优点之一就是语法简洁,好的代码就像伪代码一样,干净.整洁.一目了然. 要写出 Pythonic(优雅的.地道的.整洁的)代码,需要多看多学大牛们写的代码,github 上有很多非常优 ...

  10. Python3 基础学习笔记 C03【操作列表】

    CSDN 课程推荐:<8小时Python零基础轻松入门>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python:轻松入门& ...

最新文章

  1. 打开数“智”化之门,一字之差带来的思考
  2. python可以干什么工作-Python学完工作不好找?看看数据分析可视化都可以做什么...
  3. 《JavaScript面向对象编程指南》—第128页错误指正
  4. 【HDU - 6184】Counting Stars(三元环计数,二分,优化暴力,O(m*sqrt(m)),图论)
  5. 数据分析常用的python包_量化投资数据分析之常用的python包(附代码)
  6. vs在linux下的环境搭建,linux下vscode环境配置
  7. 战地1服务器性能红色,FPS《战地1》PC性能测试:对显卡要求不高但很吃CPU
  8. LINUX下载及编译libtool
  9. python绘制wx+b_【教学分享】大数据博士教你用python玩转时空大数据
  10. Sicily 1049. Mondriaan 解题报告
  11. 数字信号C语言——平均分布随机数
  12. cf鼠标宏数据大全_游戏鼠标中的跑车,贱驴125M游戏鼠标体验!
  13. 谈谈 JDK 和 SAPMachine 的关系
  14. android api 完整翻译之Contacts Provider (学习安卓必知的api,中英文对照)
  15. arcmap 坡降工具_ArcHydro_Toolbar_In_Arcmap Arcgis水文分析工具具体的操作 - 下载 - 搜珍网...
  16. Python编写工资计算器
  17. 微信小游戏代码热更(转载)
  18. iOS 开发 code sign 代码签名深入剖析
  19. 【美】纳西姆·尼古拉斯·塔勒布 - 随机生存的智慧(2013年7月16日)
  20. 怎么对注册表中的垃圾文件进行清理?

热门文章

  1. winform利用html开发,Winform开发框架之HTML编辑控件介绍
  2. PostGIS导入shp数据
  3. 电商直播运营的思路流程
  4. faster rcnn源码解析1
  5. html css实验6,(实验六DivCSS网页布局.doc
  6. ps新手秒变大师必备的Ps插件全在这!(mac版本)
  7. 技术员 Ghost Win 10(X86/X64)企业加强版201804
  8. java项目技术方案_JavaWeb应用开发项目设计方案.doc
  9. Ext2、Ext3、Ext4的区别
  10. 基于ssm的宠物医院信息管理系统 java毕业设计源码介绍