RF学习笔记

 

1.Create session关键字创建的会话,如果后面的请求(postget)沿用这个会话,则会继承会话的sessionid等。可以用来做登录操作,后面其他的请求不用再登录,就能通过验证。

2.上传文件的请求,请求头中不能添加Content-Type=application/x-www-form-urlencoded,否则,上传会失败。因此,setup中的登录请求,不要加请求头,在具体的请求中再添加。

3.RFfor用法:

:FOR

${i}

in range

2

10

...

log

${i}

 

 

4.RF中使用python语句时,注意变量类型的转变。在RF中所有的变量不用加引号就表示为String类型,比如${v1}=myname,如果在python语句中引用时,一定要在变量上加上单引号或双引号,才表示是字符串,如  ${v2} evaluate “${v1}” + “is”。

5.RFhttp请求的响应结果是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

3RF导入variablesvariablespython文件,在py文件中不能打印非GBK编码的字符串,否则导致RF程序错误,其他无关的用例也无法运行,无法显示日志。

8、RF中分支判断的用法(ELSE必须要大写,不然不能识别):

${day1}

Run Keyword If

${day}'.startswith('0')

evaluate

${day}'[1]

ELSE

evaluate

${day}

9、RF中编写上传文件的接口,如果请求中不填headersdata用字典格式也可以用字符串,如果headers不为空时,就需要把字符串转换成Json格式(RFJson和字典的类型都是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、RFpost接口传参数data有几种方式:(1)直接在参数的位置填写Json格式参数(空是null不是None),如:post  uri  {"name":"Lily",”age”:null};(2)先创建字典,再将字典放在位置参数处(这时候,空是None),如 ${data}  create dictionary {"name":"Lily",”age”:None}post  uri  ${data}

12、RFget接口params参数传递有几种方式:(1)直接在uri问号后面放参数,如:get  /deleteModule?${id}2)以字典的方式传递,如:${param}  create dictionary {"id":"0012"}get  /deleteModule  ${param}

13、Http传参数总结:Post接口的data参数是json格式字符串,如果传入一个字典格式的参数,会自动转化为json传入;get接口的params是字典格式参数,如果传入json串会直接报错。

14、RF中可以进行自定义关键字,文件放在路径:%Python%\Lib\site-packages。需要注意:文件的名称和类的名称要一模一样。在类中自定义函数,可以添加说明。文件放在正确路径下后,需要重启RF,有时需要重启两遍。然后按F5查看。

 

转载于:https://www.cnblogs.com/yahutiaotiao/p/9454996.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值