
RF
文章平均质量分 51
sun_977759
这个作者很懒,什么都没留下…
展开
-
robotframework-传参换行导致的问题
起因:最近有点空闲,又通过robotframework做接口测试,首先第一个登录就又把人难住了发了请求后,没有得到预期的结果,从结果看返回了登录的界面分析:登录接口本身是一个重定向的接口,而且需要先调用一个get请求,创建好一个session后,再调一个post请求,通过重定向后完成登录 上图为通过python+requests调用接口,通过fiddler捕获到的结果,下图为部分代码而通过robotframework调用的接口,通过fiddler捕获到的结果显示第二个该重定向的接口,返回结果却是20原创 2022-06-27 14:30:58 · 855 阅读 · 1 评论 -
robotframework-开启fiddler发送一个https的重定向请求出现的问题
背景:提供登录接口的是一个公共服务,该请求是https协议,登录成功后会重定向到所测应用fiddler截图如下:需求:使用robotframework做接口测试,为了方便查看接口传参是否传递正确,一般会把fiddler打开,捕获robotframework发送的请求robotframework代码如下:问题出现:请求运行了很久一直没有结果,就像卡住了一样,fiddler那边也一直没捕获到请求问题初分析:最开始怀疑是否和重定向问题有关,有一个参数叫:allo原创 2021-07-14 11:17:13 · 507 阅读 · 0 评论 -
robotframework学习使用心得集合
基于python3.7安装robotframework 通过robotframework发送的第一个请求 使用小驼峰命名法和蛇形命名法引起的问题原创 2021-07-05 16:05:20 · 232 阅读 · 0 评论 -
robotframework——使用Assign Id To Element为元素赋予临时id
前提:想执行一个js脚本,js脚本为了定位一个输入框并把输入框的内容清空(clear无效的情况下)该输入框元素是通过xpath定位的,但是js定位元素没有xpath的定位方法解决办法:Selenium2Library库提供了一个Assign Id To Element的关键字,该关键字可以为一个元素赋予临时id...原创 2020-09-22 11:24:18 · 778 阅读 · 0 评论 -
robotframework——fail和fatal error关键字的介绍
来源于内置测试库:BuiltInFail出现,表示测试用例运行失败,停止当前测试案例的执行,后续测试用例继续执行Fatal error出现,表示测试用例运行失败,停止当前及之后所有测试用例的执行配合runkeyword if使用,可以定义测试用例是否运行成功第一个测试用例:第二个测试用例:运行fail关键字后的结果:运行fatal error关键字后的结果:...原创 2020-08-31 16:24:09 · 2702 阅读 · 0 评论 -
robotframework3.2.1——导入selenium2Library库后没有open browser关键字
python版本:3.7.4robotframework版本:3.2.1selenium2Library版本:3.0.0RIDE版本:1.7.4.2在网上搜到的结果是把robotframework版本降级处理,降成3.1.2就可以了pip install robotframework==3.1.2重启RIDE后显示正常这里有个疑问,不太明白robotframework版本之间的区别,按理说在selenium2Library版本不变的情况下,robotframewor.原创 2020-08-31 15:09:06 · 5139 阅读 · 15 评论 -
robotframework——在外部资源(external resources)中删除资源引起的问题
在RIDE里面创建一个项目后,可以看到有一个external resources模块当引入的资源文件不在project管辖范围内时,就算是外部资源在suite里面引用project以外的资源文件,会自动添加到外部资源里面比如有两个项目project1和project2,此时在project2里面的某个suite里面加载project1下的某个资源文件加载后就会添加到external resource模块此时在external resources模块里面操作资源其实都是操作的pr.原创 2020-08-17 18:11:12 · 925 阅读 · 2 评论 -
robotframework——使用variables模块管理多套测试环境和管理测试数据
前提:目前有多套测试环境,每套测试环境都有不同的配置,比如这一套是禁用了root用户,另一套又是开启了HA,反正有好几套测试环境需求:期望在robotframework里面通过一个变量来控制每次在哪套环境上运行,而不是每次都手动去修改脚本里面的url解决办法:1. 先编写一个管理不同环境的url的python文件get_variables()函数,这个是rf指定专用返回变量的函数,返回的是一个字典对象,按照如下的配置,那么我在rf里面就可以引用main_url和un、pw这三个变量了。这个函原创 2020-08-17 13:56:17 · 1161 阅读 · 0 评论 -
robotframework——变量取名以小驼峰命名法和蛇形命名法出现的问题
一般来说,变量名如果是以多个单词组成,则多个单词之间以_分隔比如,mysql_params在python里面,mysql_params和mysqlParams是两个变量(应遵循python的命名规范,不建议随便给变量命名)但是在robotframework里面,会认为mysql_params和mysqlParams是一个变量从上图可以看出,给变量mysqlParams赋值,实际上将mysql_params的值也给修改了通过查看变量的内存地址也可以看出,在python...原创 2020-08-14 17:50:25 · 704 阅读 · 0 评论 -
robotfram——数据驱动 测试模板 test template的理解
在测试套件suite的settings里面有一项叫test template,具体来看看怎么使用1. 先在suite下创建了一个关键字叫test,在test template里面填写上test2. test关键字里面很简单,就是把两个参数进行加法计算3. 在suite下创建测试用例4. 直接创建的测试用例是不会有第一行param1和param2的黑色字体,需要手动在text edi里面去添加到*** Test Cases ***后面(反正我是这样手动添加的,...原创 2020-08-14 14:55:01 · 703 阅读 · 0 评论 -
robotframework——命令行运行测试脚本
整个工程路径为:D:\sqlw_test\robotframework\datahub4.0.81. 运行指定的测试用例用法:robot -t 测试用例名(可为正则表达式,如00*,也可以是具体的用例名) suite路径2. 运行指定的用例集用法:robotsuite路径3. 运行指定标签下的测试用例用法:通过-i 和 -e来指定标签,-i表示运行该标签下的测试用例,-e表示不运行该标签下的测试用例4. 设置rf输出文件的路径用法:通过-d来指定路径,...原创 2020-08-13 17:18:13 · 2365 阅读 · 0 评论 -
robotframework——标签的作用
为测试用例打上标签,可以更好的分类测试用例,也可以更好的控制测试用例的执行标签可以直接在测试用例里面设置,一个测试用例可以设置多个标签也可以在suite里面整体设置,force tags:为suite下的所有测试用例都打上这个标签,通过这里打的标签在测试用例里面是置灰了,不可编辑的default tags:如果suite下的测试用例没有打标签,就会打上这里设置的标签,如果测试用例已经打了标签,则不进行添加在run的时候可以选择:只运行这些标签的测试用例还是跳过这些标签的测试用例.原创 2020-08-13 15:16:14 · 1265 阅读 · 0 评论 -
robotframework——执行evaluate报错 failed: SyntaxError: invalid syntax (<string>, line 1)
起因:测试一个上传文件的接口,打开了一个文件后,调完接口后,心想着要细致,要记得把文件关闭了最开始的写法:由于要想关闭文件对象,所以需要把文件对象提取出来,设成一个变量,于是修改后变成一运行,执行到第三行就开始报错Evaluating expression '('core-site.xml',<_io.TextIOWrapper name='D:\\sqlw_test\\robotframework\\datahub4.0.8\\测试用例\\测试数据\\hdfs\\200\.原创 2020-08-12 11:39:40 · 10584 阅读 · 3 评论 -
robotframework学习——如何调用上传文件的接口,multipart/form-data如何传值
${core_filePath} Set Variable ${CURDIR}${/}测试数据${/}hdfs${/}200${/}core-site.xml ${file_tup} Evaluate ('core-site.xml',open(r'${core_filePath}','rb'),'text/xml') &{file} Create Dictionary file=${file_tup} #发送请求 $...原创 2020-08-12 09:59:39 · 2448 阅读 · 2 评论 -
robotframework——在suite setup中运行多个关键字以及setup的执行顺序
一般来说,在执行某个测试用例时,都会先初始化一些东西在suite里面,有suite setup和test setup,可以直接输入一个关键字,关键字后面用 | 分隔参数如果同时设置了suite setup和test setup,会先执行suite setup,再执行test setup在运行每一个测试用例前,都会先执行一次test setup如果想在setup里面执行多个关键字,就需要用到Run Keywords关键字,用法为:Run Keywords | 关键字1 | [...原创 2020-08-11 14:13:22 · 4665 阅读 · 0 评论 -
robotframework-巧用evaluate关键字
evaluate后面跟python的一些表达式函数等,灵活使用evaluate关键字,可以实现不少需求场景一:查看变量的类型及其属性等 ${test_var} Set Variable 12 ${type_var} Evaluate type($test_var) ${dir_var} Evaluate dir($test_var)场景二:把一个list里面的元素转成int类型的 ${test_list} Cr原创 2020-08-05 15:15:01 · 3342 阅读 · 0 评论 -
robotframework——创建用户关键字(user keyword)提高代码的复用性
之前介绍了如何通过RF发送请求以及如何设置check点先看场景:有一个新增资源的接口,这个接口可以新增各种类型的资源,对传参又有各种要求,非空啊非法啊没权限啊等等,先大概罗列一下测试点,随便一写就非常多了下面这些测试用例有个特点就是都是调的同一个接口,只是传递的参数的值不同而已以及check的点不一样假设在不使用用户关键字的情况下,基本上都是下图那样的调用多写几个后发现标红那一块在重复使用,那我们可以考虑创建一个用户关键字,该关键字专门用于发送新增资源的请求,把接受到的参数拼凑.原创 2020-08-05 11:39:43 · 1332 阅读 · 0 评论 -
robotframework之post请求params传参和data传参引起的问题
看了下post requests关键字的介绍,捉摸着应该使用data传参,也按照data传参的要求设置参数结果运行后发现接口返回值和自己预期的完全不一样。。。 不知道哪里有问题。。。结果把data传参改成params传参后,居然调用成功了。。。打算通过fiddler监听一下,看下data传参和params传参有什么区别fiddler如何监听robotframework发起的请求通过对比发现:params传参的请求,参数是直接跟在请求url后面的,在WebForms表单里...原创 2020-08-04 16:50:25 · 1842 阅读 · 0 评论 -
robotframework之接口测试对请求返回值的处理,如何判断请求是否调用成功?
在如何通过robotframework发起第一个请求里介绍了如何用一个变量去接收请求的返回值下面来看看该返回值里面都包含些什么东西,我们如何判断一个请求是否调用成功?也就是我们如何来判断这个测试用例是跑成功了还是跑失败了?首先我们先看看返回值具体是什么:首先这里面用到了关键字Evaluate,evaluate后面跟python的一些表达式函数等,这里用到的type和dir就是python里面的函数,用于查看某个对象的类型和属性,注意type和dir里面变量名称的用法,是去掉了{}的把结果再赋原创 2020-08-04 15:51:43 · 4264 阅读 · 1 评论 -
robotframework之RIDE1.7.4.2中文乱码问题
前两天才基于python3.7安装的robotframework,RIDE的版本是1.7.4.2,运行测试用例后中文乱码在python安装目录\Lib\site-packages\robotide\contrib\testrunner,修改testrunnerplugin.py文件,将第565行的SYSTME修改为OUTPUT重启RIDE,再次运行显示正常...原创 2020-08-04 14:27:48 · 1326 阅读 · 0 评论 -
robotframework之接口测试-第一个post请求和请求之间如何传递session、cookies的自动添加
使用robotframework做接口测试,首先就是要先安装一个RequestsLibrary这个库,通过pip工具直接安装pip install robotframework-requests在suite里面导入RequestsLibrary库,显示黑色表示导入成功具体步骤:1.首先使用create session关键字创建一个会话,给该会话取一个别名叫api(在后续的请求里面可以直接使用该别名来使用),后面再跟服务器域名可以在session里面设置请求头,但是考虑到每个具.原创 2020-08-04 11:22:31 · 3284 阅读 · 0 评论 -
基于python3.7安装robotframework
首先需要安装python,我这里是安装了python3.7.4。然后安装pip工具python和pip的安装 通过pip工具直接安装robotframeworkpip install robotframework继续通过pip安装RIDE(robotframework IDE)pip install robotframework-ride安装完成后能正常打开RIDE则表示安装成功我的python3.7是很早就安装好了的,之前就先把python和pip安装好了,今天安装robo...原创 2020-08-03 18:15:09 · 511 阅读 · 0 评论 -
robotframework发送的请求为何fiddler没有监听到?
起因:通过robotframework发送了一个请求,这个请求老是得不到预期的返回值,又看不出具体是哪里没对,想通过fiddler对比下和浏览器发送的请求在参数上有什么区别问题:打开fiddler后,发现浏览器发送的请求,fiddler接收到了,但是通过robotframework发送的请求,在fiddler里面却没有显示解决思路:考虑到robotframework是基于python的,故而去网上查询了fiddler如何抓取通过python发起的请求得到了一点思路,既然在pyth原创 2020-08-03 17:58:06 · 619 阅读 · 0 评论 -
robotframework之解决导入httplibrary库一直标红的问题
基于python3.7安装的robotframework,通过pip安装了httplibrary库pip install robotframework-httplibrary在RIDE里面导入httplibrary库却一直标红在网上查了,还是因为python2和python3的兼容问题,真的是无与伦比的坑坑坑~首先需要安装livetest,直接通过pip install livetest是安装不起的,下载压缩包手动安装下载地址:https://files.pythonhost原创 2020-08-03 16:05:42 · 4576 阅读 · 10 评论 -
robotframework之RIED运行测试用例报错Suite ‘XXX‘ contains no tests matching name ‘XXX‘ in sin suite
今天重新给电脑安装部署了robotframework和RIDE,是基于python3.7.4安装的在RIDE里面创建了一个最简单的case,先简单测试下是否能正常运行,结果发现报错:[ ERROR ] Suite 'Test' contains no tests matching name 'Test.Testsuite1.case1' in suite 'Test.Testsuite1'.创建suite的时候format默认是txt,在以前基于python2.几安装的RF我都是使用的txt原创 2020-08-03 14:20:40 · 8488 阅读 · 2 评论 -
robotframework调用上传文件接口报错“the request was rejected because no multipart boundary was found”
设置的headers信息发起请求后服务器端报错寻找到原因是因为content-type里面没有添加boundary信息,重新修改headers参数重新请求接口,不报上面的错误了,但是又报出了另外的错误出现了空指针异常的错误,咨询了开发应该是没有获取到文件信息,不太清楚具体错误的原因在网上看到篇博客里面说不要在headers里面加自己的content-t...原创 2019-03-28 14:40:45 · 142428 阅读 · 22 评论 -
robotframework中查看变量的类型以及属性-使用evaluate关键字
在RF里面想查看一个变量的类型以及其拥有的属性,可以巧妙利用Evaluate关键字${testDic} Create Dictionary a=1 b=2${testType} Evaluate type($testDic) ${testDir} Evaluate dir($testDic) ...原创 2019-04-10 13:45:14 · 10430 阅读 · 3 评论 -
python 2 中解决json.loads()出现的Unicode编码问题
场景:在使用robotframework进行接口测试,需要对返回值进行检查,因为整个返回值的检查非常麻烦,涉及到循环遍历拼装字符串等操作,所以准备通过编写python函数来进行解决整个返回值格式为[{xx:xx,xx:xx},{xx:xx,xx:xx},{xx:xx,xx:xx}],是一个字符串,预期转成一个数组,然后每一个数组里面的元素又是一个字典,需要遍历数组,获取每一个字典里面某一个...原创 2019-04-11 18:20:01 · 8922 阅读 · 0 评论 -
robotframework中Get Json Value和Get From Dictionary的巧用
使用RF做接口测试,接口响应体里面的内容通常是一个json格式的字符串,可以直接使用Get Json Value(来自HttpLibrary.HTTP库)进行解析,通常用法如下可以使用如/xx/xx/xx这样一层一层的去解析但是通过get json value获取到的值,会发现如果是个字符串,是带有引号的但是很多时候预期是只需要里面的test,不带引号,这个时候就需要...原创 2019-04-16 15:33:04 · 8697 阅读 · 0 评论 -
robotframework请求一个参数超级长的接口出现的问题
场景:待测试的接口是一个保存任务的接口,里面的参数个数不多,但是其中有个参数非常复杂,就是列表字典的各种嵌套,总共传参长度至少一万个字符以上2019-04-29 14:19:47.804 [http-nio-4018-exec-79] INFO org.apache.coyote.http11.Http11Processor - Error parsing HTTP request hea...原创 2019-04-29 15:07:13 · 1156 阅读 · 0 评论 -
robotframework做接口测试获取json串里面的值
使用到的关键字Get Json Value(来自HttpLibrary.HTTP库)对于字典类型的json,使用/key来获取;对于列表类型的json,使用/序号来获取,下标从0开始对于多层级的json串,就可以使用“/key/序号/key”这样多层级的方式来获取...原创 2019-04-29 16:38:38 · 4964 阅读 · 0 评论 -
robotframework由于变量名命名问题导致的TypeError: string indices must be integers
如上,预期设置一个字典变量,名为test_dict第一次从test_dict中取出key为a的值,并且赋值给变量testDict,这一步操作后预期testDict的值为1第二次从test_dict中取出key为b的值,再次赋值给变量testDict,这一步操作后预期testDict的值为2实际运行起来后却报错了从错误可以看出是第二次对变量testDict进行赋值时报错...原创 2019-03-29 14:34:01 · 2028 阅读 · 0 评论