標籤:建立 pass python text 用例 pos bsp assert 檔案夾
# 以禪道為例:
一、建立一個類,類裡面寫一個登入方法:
import requests
class LoginZentao():
def __init__(self, s): # 初始化
self.s = s # 定義一個全域的s
def login(self):
r = self.s.post() # self.s調用全域的s
pass
if __name__==‘__main__‘:
s = requests.session()
zentao = LoginZentao(s) # 類執行個體化為對象,傳入參數s
zentao.login() # 調用zentao裡面的login() 方法
二、上傳圖片介面:
# 檔案上傳:content-Type: multipart/form-data類型
import requests
class SendFile():
def __init__(self, s):
self.s = s
def sendImg(self, jpgpath, jpgname=‘1.jpg‘, jpgtype=‘image/jpeg‘):
# 登入並更新cookies
f = open(‘1.jpg‘, ‘rb‘) # 絕對路徑
url2 = ‘‘
body = {
‘localurl‘: (None, jpgname),
‘imgFile‘: (‘1.jpg‘, open(jpgpath, ‘rb‘), jpgtype)
# 1、絕對路徑 2、open(‘1.jpg‘, ‘rb‘) 3、content-type的值
}
# 上傳圖片的時候,不data和json,用files
r = self.s.post(url2, files=body) # 1、調用全域的s,用self.s 2、files
print(r.text)
# 上傳到伺服器,每傳一次地址都不一樣
# 解決拋異常
try:
jpg_url = r.json()[‘url‘] # (相對路徑)
print(jpg_url)
return jpg_url
except Exception as msg: # 返回報錯資訊
print(‘圖片上傳失敗,原因:%s‘%msg) # 列印報錯資訊
# raise # 主動拋原始異常
# raise ··· # 拋出異常內容為:“···”
return ‘‘
if __name__==‘__main__‘:
s = requests.session()
from test.test_009_003_zentaologin import LoginZentao
# 調登入方法
login = LoginZentao(s) # 執行個體化類LoginZentao為對象
login.login()
# 上傳檔案
send = SendFile(s) # 把類sendfile()執行個體化為對象
send.sendImg() # 調用sendfile()裡面的sendImg方法
三、編寫、執行測試案例:
import unittest
import requests
from test.test_009_003_zentaologin import LoginZentao # 從檔案夾.檔案名稱匯入LoginZentao類
from test.test_009_002_sendfile import SendFile # 從檔案夾.檔案名稱匯入sendfile類
import os
# 擷取檔案路徑
parpath = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) # 定位當前檔案夾
jpgpath = os.path.join(parpath, ‘testdata‘, ‘1.jpg‘) # “testdata”:存放檔案的檔案夾名,“1.jpg”:檔案名稱
class TestSendFile(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.s = requests.session()
# 執行個體化調用的類
cls.login = LoginZentao(cls.s ) # 執行個體化類LoginZentao為對象
cls.send = SendFile(cls.s) # 把類sendfile()執行個體化為對象
def test_01(self):
# 上傳檔案:第一步,登入
self.login.login()
# 第二步,傳檔案
result = self.send.sendImg(jpgpath)
# 第三步:斷言:返回的結果裡麵包含‘.jpg‘
self.assertIn(‘.jpg‘, result)
# # 調登入方法
# login = LoginZentao(s) # 執行個體化類LoginZentao為對象
# login.login()
# # 上傳檔案
# send = SendFile(s) # 把類sendfile()執行個體化為對象
# send.sendImg() # 調用sendfile()裡面的sendImg方法
python介面自動化測試二十三:檔案上傳