美文网首页
robotframework接口自动化-批量上传文件

robotframework接口自动化-批量上传文件

作者: Riclue | 来源:发表于2019-07-16 16:50 被阅读0次

前言

接口自动化中自然不能少的了上传文件,但是上传文件好多同学不太清楚怎么去做,我这里做一个批量上传的接口,同样也支持单个上传。

开始

首先我们找一个支持文件上传的接口,或者自己写一个(有开发能力可动手实现.

此处注意:request 上传文件默认编码是asci,我们要改成utf-8,不然中文文件上传是不成功的,具体我就不演示了,想看看不改utf-8效果可以跳过这步。
在python的sit-packages/urllib3路径下找到fields.py文件,如图修改,代码大概在40行左右,具体行数版本不同会不同。

/sit-packages/urllib3/fields.py

我使用的接口如下:


api上传接口
返回结果

下面我们开始写上传文件的RF脚本

  • 先在TestLibrary写个方法,把文件封装成List形式


    files
  • files封装好我们可以写上传文件的关键字了

批量上传文件
    [Arguments]    ${currentDate}   @{filelist}
    create session    api      此处是测试接口的ip
    ${FilesList}    create files list    @{filelist}
    ${addr}   POST request    api     此处是接口路径      data=${data}     files=${FilesList}
   #验证code码
   should be equal as string     ${addr.status_code}    200
   ${response}      to json    ${addr.content}
   #验证返回message
   should be equal as string       ${response.message}       文件上传完成
  • 此时我们可以调用这个关键字上传文件了
上传两个文件
      批量上传文件        文件1.txt    文件2.txt

我们可以发现,上传的当前路径下的文件好操作,但是windows如果不是当前路径下,是其他路径下的怎么办呢?直接写路径下的文件吗?可以试试看。
但是我们通常写自动化不直接写绝对路径,使用 ${CURDIR}参数(特别是jenkins执行的时候),但这个参数在windows和linux上返回的路径是不同的,open()方法在windows和linux “ / " 这种格式通用。windows上是\ \ 格式。我们想用通用的怎么办?


turn to backlash

之后,我们可以这样使用

上传非当前目录下的文件
     ${file1}    turn to backslash     ${CURDIR}/XX/文件1.txt
     ${file2}    turn to backslash     ${CURDIR}/XX/文件2.txt
     批量上传文件       ${file1}    ${file2} 

相关文章

网友评论

      本文标题:robotframework接口自动化-批量上传文件

      本文链接:https://www.haomeiwen.com/subject/oydtlctx.html