接口自動(dòng)化post方法操作步驟:
1、common常用方法封裝
2滞伟、調(diào)用common中封裝好的json接口
1萌朱、common常用方法封裝
common常用方法封裝,通過header藐握、root靴拱、
data等post方法進(jìn)行封裝。
import requests
import unittest
# 定義一個(gè)common的類猾普,它的父類是object
class Common(unittest.TestCase):
# common的構(gòu)造函數(shù)
def __init__(self,root):
# 被測系統(tǒng)的根路由
self.url root = root
# 封裝你自己的post方法袜炕,uri是訪問路由,params是post請(qǐng)求需要傳遞的參數(shù)抬闷,如果沒有參數(shù)這里為空
def post(self, uri, data='',headers=''):
# 拼湊訪問地址
url = self.url root + uri
if len(data) > 0 or len(headers) >0:
# 如果有參數(shù)妇蛀,那么通過post方式訪問對(duì)應(yīng)的url耕突,并將參數(shù)賦值給requests.post默認(rèn)參數(shù)data
# 返回request的Response結(jié)果笤成,類型為requests的Response類型
res = requests.post(url, data = data,headers = headers)
else:
# 如果無參數(shù),訪問方式如下
# 返回request的Response結(jié)果眷茁,類型為requests的Response類型
res = requests.post(url)
return res
2炕泳、調(diào)用common中封裝好的json接口
調(diào)用common中封裝好的代碼,進(jìn)行業(yè)務(wù)邏輯編寫上祈。
import unittest
import json
import pprint
from ddt import ddt,data,unpack
from interface_testing.common import *
@ddt
class QUERY_TRACK_DATA(unittest.TestCase):
@data(('1610417597117853','las_data'))
@unpack
def test_queryTrackData(self,customerNo,queryInfo):
# 訪問uri
uri_index = '/customer/queryTrackData'
# 調(diào)用你的Common類
comm = Common('http://11.114.0.108:9086')
payload ="""{
"customerNo":"1610417597117853",
"queryInfo":"las_data"
}
"""
payload_info = json.loads(payload)
payload_info["customerNo"] = customerNo
payload_info['queryInfo'] = queryInfo
headers = {
'Content-Type': 'application/json: charset=utf-8'
# 完成方法
response_login = comm.post(uri_index,data=json.dumps(payload_info),headers=headers)
# 打印response結(jié)果
pprint.pprint('Response內(nèi)容:' +response_login.text)
if __name__ =='__main__':
unittest.main()