robotframework使用Evaluate打开本地文件

“Evauate”关键字的强大之处在于通过它可以使用 Python 语言中所提供的方法。如:

test    case11

${d}    Evaluate    random.randint(1000, 9999) random

log     ${d}

上传文件使用到了python的open函数:

open(file, mode='r')

第二个mode参数,常用的有:

t文本模式 (默认)。
x写模式,新建一个文件,如果该文件已存在则会报错。
b二进制模式。
+打开一个文件进行更新(可读可写)。
U通用换行模式(不推荐)。
r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+打开一个文件用于读写。文件指针将会放在文件的开头。
rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

要根据不同的文件使用恰当的mode参数才行,我的情况是需要将本地的压缩文件上传到web上,请求格式要求如下:

所以使用二进制方式打开文件,指令如下:

${file}    evaluate    open(${pkgPath}, 'rb')

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
robotframework调⽤python类⽅法_(五)RobotFramework基 础。。。 上⼀⼩节,你已经感受到了 Robot Framework 的基本说法,这⼀⼩节你将会看到 Robot Framework 更多强⼤的⽤法。 if 语句 通过 "run keyword if" 关键字可以编写 if 分⽀语句。 *** Test Cases *** test case8 ${a} Set variable 59 run keyword if ${a}>=90 log 优秀 ... ELSE IF ${a}>=70 log 良好 ... ELSE IF ${a}>=60 log 及格 ... ELSE log 不及格 ⾸先定义变量 a 等于 59 。 If 判断 a ⼤于等于 90 ,满⾜条件 log 输出 "优秀 "; 不满⾜上⾯的条件,接着 else if 判断 a ⼤于等于 70 ,满⾜条件 log 输出 "良好"; 不满⾜上⾯的条件,接着 else if 判断 a ⼤于等于 60 ,满⾜条件 log 输出 "及格"; 上⾯的条件都不满⾜,else log 输出"不及格"。 注意 sele if 和 else 前⾯的三个点点点(...) for 循环 在 Robot Framework 中编写循环通过 ":FOR" 。 1、循环 0~9 。 *** Test Cases *** test case9 :FOR ${i} IN RANGE 10 \ log ${i} 通过":FOR"定义 for 循环;IN RANGE ⽤于指定循环的范围。 2、遍历列表。 *** Test Cases *** test case10 @{abc} create list a b c : FOR ${i} IN @{abc} \ log ${i} "create list" 关键字⽤来定义列表(a,b,c),"@{}"⽤来存放列表。通过过 ":FOR" 循环来来遍历@{abc}列表中的字符。 强⼤的 Evaluate 为什么说"Evauate"关键字强⼤呢。因为通过它可以使⽤ Python 语⾔中所提供的⽅法。 1、 ⽣成随即数 在 Python 中我们可以这样来引和并使⽤⽅法: C:\Users\fnngj> python Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import random >>> random.randint(1000, 9999) 9777 random 模块的 randint()⽅法⽤于获取随机数。 在 Robot Framework 中使⽤ "Evauate" 也可以调⽤ Python 所提供的 random 模块下的 randint()⽅法。 *** Test Cases *** test case11 ${d} Evaluate random.randint(1000, 9999) random log ${d} 2、 调⽤⾃⼰编写的 Python 程序 ⾸先创建 D:/rf_test/count.py ⽂件。 def add(a,b): return a + b if __name__ == "__main__": a = add(4,5) print(a) 通过add函数实现两个数相加,这是再简单不过的⼩程序了。 下⾯就通过 Robot Framework 调⽤ count.py ⽂件中的 add()函数。 *** Test Cases *** test case12 Import Library D:/rf_test/count.py ${a} Evaluate int(4) ${b} Evaluate int(5) ${add} add ${a} ${b} log ${add} 在 Robot Framework 中所有的内容都是字符串类型,所以,需要通过 "Evaluate" 将 4 和 5 转化为 int 类型后,再调⽤ add 计算两个 数的和。 注释 Robot Framework 中添加注释也⾮常简单。"Comment" 关键字⽤于设置脚本中的注释。除此之外,你也可以像 Python ⼀样使 ⽤"#"号进⾏注释。 *** Test Cases *** test case13 Comment 这是注释 #这也是注释 如果你熟悉 Python 编程语⾔,那么 Robot Framework ⼏乎没有实现
RobotFramework基础教程 基础教程 安装 安装 Pycharm 安装插件 Pycharm File->Settings->Plugins 搜索并安装插件 IntelliBot Run Robot Framework Testcase RunRobot Framework 基本格式 基本格式 Settings Library Resource Force Tags Defalut Tags(未定义任何标签时) Test Setup Test TearDown Test Template Test Timeout Variables Keywords Test Cases [Tags] [Template] [Documention] [Timeout] [Return] [Arguments] [Setup] [TearDown] Suite(⽂件夹) __init__⽂件 library为第三⽅库或⾃定义库,resource为⾃定义关键字集合,variables为⾃定义变量集合 简单⽰例 简单⽰例 Selenium Demo pip install robotframework robotframework-selenium2library *** Setttings *** ** Test Setup ** ... ** Test Teardown ** ... *** Keywords *** loginwebsite [Arguments] ${username} ${password} Open Browser http://... chrome [Return] ${lessons} *** Settings *** Library SeleniumLibrary *** Test Cases *** test rf log hello robot framework Baidu search case Open Browser http://www.baidu.com chrome Input text id=kw robot framework Click button id=su Close Browser baidu_search.robot Headless Demo MySQL操作 操作Demo *** Settings *** Documentation Simple examle using SeleniumLibrary Library SeleniumLibrary *** Variables *** ${URL} http://www.baidu.com ${BROWSER} Chrome *** Keywords *** Baidu Search [Arguments] ${search_key} Input text id:kw ${search_key} click button id:su Evaluate time.sleep(2) time ${title} Get title [Return] ${title} *** Test Case *** case1 Open Browser ${URL} ${BROWSER} ${title} Baidu Search robot framework Should contain ${title} robot framework_百度搜索 close Browser case2 Open Browser ${URL} ${BROWSER} ${title} Baidu Search selenium Should contain ${title} selenium_百度搜索 close Browser *** Settings *** Documentation This example demonstrates how to use current library Library SeleniumLibrary *** Test cases *** Open Browser with Chrome options in headless mode ${options} Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver Call Method ${options} add_argument --start-maximized Call Method ${options} add_argument --headless Call Method ${options} add_argument --disable-gp
robotframework接⼝测试案例 1.关键字:post请求 *** Settings *** Library RequestsLibrary *** Keywords *** post.request [Arguments] ${url} ${api} ${data} ${headers} [Documentation] post请求封装 #创建session create session _session ${url} headers=${headers} #发送请求 ${respose} post request _session ${api} data=${data} headers=${headers}    #校验请求是否成功 Should Be Equal As Strings ${respose.status_code} 200 ${json}= set variable ${respose.json()}    #返回请求结果 [Return] ${json} 2.关键字:接⼝调⽤post请求: *** Settings *** Resource ../Public_KeyWords/post请求.robot *** Keywords *** com.souche.shop.api.TgcShopOperateService [Arguments] ${all} ${headers}= create dictionary _dubbo_token=souche_http_token _method_name=addTgcShop Content-Type=application/x-www-form- urlencoded; charset=UTF-8 ${resq} post.request http://IP地址:端⼝ /com.souche.shop.api.TgcShopOperateService ${all} ${headers} [Return] ${resq} 3.关键字:连接数据库 *** Settings *** Library DatabaseLibrary *** Keywords *** connect.database [Arguments] ${base_name} ${user_name} ${password} ${host} ${port} #连接数据库 connect to database using custom params pymysql database='${base_name}',user='${user_name}',password='${password}',host='${host}',port=${port} 4.接⼝参数变量: #-*- coding: utf-8 -*- #添加弹个车店铺 variables={ "name":"测试店",#店铺名称 "short_name":"测试店", #对外简称, "nickname":"测试店", #对内简称, "isTest":"1",#是否是测试店 "phone":"13251028260",#⼿机号 "address":"北京王府井",#'地址', "area":"西直门128号" ,#地区,省市区拼接, "province":"北京",#省 "city":"北京",#市 "region":"东城区",#地区 "address_call":"0571-3399456",#座机号码 "coordinate":"120.288383,30.203987", #⾼德坐标 } 5.测试case: *** Settings *** Documentation 添加弹个车店铺 Variables ../Resource/add_tgcshop.py Resource ../KeyWords/Tgcshop_add.robot Resource ../Public_KeyWords/connect_database.robot *** Test Cases *** 增加弹个车店铺 ${variable}= evaluate json.dumps(${variables}, ensure_ascii=False, encoding='UTF-8') json log ${variable} ${par}= create dictionary shopQO=${variable} ${req}= com.souche.shop.api.TgcShopOperateService ${par} ${result}= set variable ${req['data']['success']} should be

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值