接口自動化實現圖片上傳(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 requests
import 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}
接口自動化實現圖片上傳(selenium/RF)