接口自动化实现图片上传(selenium/RF)

最近做自动化碰到一个问题:

就是带图片上传的不知道怎么实现自动化:整理了下实现如下:

上传图片postman 结果请求如下,上传图片后返回一个图片地址:

post请求 body 是form-data 而不是json

fiddler抓取如下,

selenium实现如下:【也可以参考悠悠的带token验证登录的:https://www.cnblogs.com/yoyoketang/p/7990127.html】

#!/usr/bin/env python# -*- coding: utf-8 -*-import requestsimport os#需要将需要上传的图片文件放到当前文件路径才能读取def fileUpload(apiurl,fileName,targetid):    # url ="http://gateway-test.myscrm.cn/panther-third/v1/file/img/upload"    url =apiurl    pwd= os.getcwd() #取当前文件夹路径    filepath = os.path.join(pwd,fileName) #将当前文件夹下面的文件拼接成可以读取的文件路径    f1 ={        "target": (None,targetid),         # "file": ("logo3x.png", open("C:/Users/zhengw/Desktop/otherFile/logo3x.png", "rb"), "image/png")        "file": ("logo3x.png", open(filepath, "rb"), "image/png")    }    r1 = requests.post(url, files=f1)    print filepath    print r1.content

# if __name__ == "__main__":#     apiurl = "http://gateway-test.myscrm.cn/panther-third/v1/file/img/upload"#     fileName ="logo3x.png"#     targetid = "8"#     fileUpload(apiurl,fileName,targetid)

RF实现上传

*** Settings ***
Library RequestsLibrary
Library requests
Resource ../Basics/基础关键字.txt
Library ../config/sc.py
Library C:/Python27/Lib/site-packages/ykpy/sc.py

*** Test Cases ***
1
[Documentation] \#${targetid}
[Setup] # 上传类型id
${file} Evaluate ("logo3x.png", open("C:/Users/zhengw/Desktop/otherFile/logo3x.png","rb"), "image/png")
${target} Evaluate (None,u"8")
Comment ${rrrr} Evaluate os.getcwd()
Comment Log Many asdsadasdsa ${rrrr}
&{data} Create Dictionary file=${file} target=${target}
Create Session api http://gateway-test.myscrm.cn/panther-third
${request} Post Request api /v1/file/img/upload files=&{data}
log ${request.status_code}
log ${request.content}



原文地址:https://www.cnblogs.com/tDayUp/p/9708830.html

时间: 2024-10-10 03:54:27

接口自动化实现图片上传(selenium/RF)的相关文章

微信JS-SDK接口 + FLASK实现图片上传

最近在做一个项目从全球各地采集图片,考虑采用微信JS-SDK来简化开发.图片会首先上传到微信的服务器,返回一个id,然后根据这个id去微信服务器获取图片.微信提供可选择的压缩图片功能.图片首先上传到微信的服务器,可以保障较好的上传稳定性. 详细内容请参考微信的官方文档:微信JS-SDK说明文档 运行页面如下 HTML 在微信demo的基础上修改,见微信JS-SDK DEMO页面 增加图片的多次选择,多次上传,删除等功能 uploadImage.html <!DOCTYPE html> <

python接口自动化7-post文件上传

前言 文件上传在我们软件是不可少的,最多的使用是体现在我们后台,当然我们前台也会有.但是了解过怎样上传文件吗?这篇我们以禅道文档-创建文档,上传文件为例. post请求中的:Content-Type:multipart/form-data  这种类型便是上传文件. 一.环境安装.抓包分析 1.pip install requests_toolbelt,post请求 multipart/form-data  类型 C:\Users\Administrator>pip install request

Hbuilder mui 相册拍照图片上传

http://www.bcty365.com/content-146-3648-1.html 使用流程 弹出actionSheet /*点击头像触发*/ document.getElementById('headImage').addEventListener('tap', function() { if (mui.os.plus) { var a = [{ title: "拍照" }, { title: "从手机相册选择" }]; plus.nativeUI.ac

springMVC框架下——通用接口之图片上传接口

我所想要的图片上传接口是指服务器端在完成图片上传后,返回一个可访问的图片地址. spring mvc框架下图片上传非常简单,如下 1 @RequestMapping(value="/uploadImg", method=RequestMethod.POST) 2 @ResponseBody 3 public String uploadImg(@RequestParam(value="img")MultipartFile img){ 4 File f = new Fi

微信公众平台新增图文内容中图片上传接口,并过滤外链图片(这是封闭么?)

为了加快图文内容的浏览速度,公众平台新增了图文消息内容中的图片上传接口.开发者可以通过该接口上传所需要的图片来获得图片链接,再把图片链接放到图文内容中. 同时,为了加强平台安全性,从8月15日起, 系统将自动过滤图文内容中的外链图片(8月15日之前的图文内容不会过滤).下述接口受到影响,请开发者尽快修改: 1.群发图文消息时,上传图文的接口,查看接口文档 2.素材管理中的新增永久图文素材接口,查看接口文档

selenium+python自动化77-autoit文件上传【转载】

前言 关于非input文件上传,点上传按钮后,这个弹出的windows的控件了,已经跳出三界之外了,不属于selenium的管辖范围(selenium不是万能的,只能操作web上元素).autoit工具处理windows的控件窗口是专业的,所以这个需借助AutoIt来解决了. 一.环境准备 1.可以autoit官网上下载,安装 http://www.autoitscript.com/site/ 2.下载到本地后傻瓜式安装,安装完之后在应用程序找到这个Autoit v3 3.AutoIt里面几个菜

selenium+python自动化77-autoit文件上传

前言 关于非input文件上传,点上传按钮后,这个弹出的windows的控件了,已经跳出三界之外了,不属于selenium的管辖范围(selenium不是万能的,只能操作web上元素).autoit工具处理windows的控件窗口是专业的,所以这个需借助AutoIt来解决了. 一.环境准备 1.可以autoit官网上下载,安装 http://www.autoitscript.com/site/ 2.下载到本地后傻瓜式安装,安装完之后在应用程序找到这个Autoit v3 3.AutoIt里面几个菜

Selenium2+python自动化33-文件上传(send_keys)

前言 文件上传是web页面上很常见的一个功能,自动化成功中操作起来却不是那么简单. 一般分两个场景:一种是input标签,这种可以用selenium提供的send_keys()方法轻松解决: 另外一种非input标签实现起来比较困难,可以借助autoit工具或者SendKeys第三方库. 本篇以博客园的上传图片为案例,通过send_keys()方法解决文件上传问题 一.识别上传按钮 1.点开博客园编辑器里的图片上传按钮,弹出”上传本地图片”框. 2.用firebug查看按钮属性,这种上传图片按钮

[项目构建 五]babasport ajax图片上传及FastDFS入门案例.

今天来开始写图片上传的功能, 现在的图片上传都讲求 上传完成后立刻回显且页面不刷新, 这里到底是怎么做的呢? 当然是借助于ajax了, 但是ajax又不能提交表单, 这里我们还要借助一个插件: jquery.form.js剩下的一个是FastDFS, 那么什么是FastDFS呢? FastDFS是一个开源的轻量级分布式文件系统,由跟踪服务器(tracker server).存储服务器(storage server)和客户端(client)三个部分组成,主要解决了海量数据存储问题,特别适合以中小文