日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

接口之用例编写、验证

發布時間:2023/11/29 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 接口之用例编写、验证 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、用Excel編寫用例(xlsx格式)

截圖僅供參考,實際用例編寫需要根據實際情況來。

二、用例加載、驗證

?1、數據的加載

import xlrd,xlwt #python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫def datacel():try:filepath='.\\test_case\\jenkins_case.xlsx'file=xlrd.open_workbook(filepath)#打開excel文件工作簿me=file.sheets()[3]#指定到具體sheet4表nrows=me.nrows#讀行數#用例IDlistid=[]# 用例名稱listname = []# keylistkey = []#參數listcontent=[]#urllisturl=[]#請求方式listfangshi=[]#斷言 期望值listqiwang=[]for i in range(1,nrows):listid.append(me.cell(i,0).value)listname.append(me.cell(i, 1).value)listkey.append(me.cell(i,2).value)listcontent.append(me.cell(i,3).value)listurl.append(me.cell(i,4).value)listfangshi.append(me.cell(i,5).value)listqiwang.append(me.cell(i,6).value)return listid,listname,listkey,listcontent,listurl,listfangshi,listqiwangexcept:print("數據錯誤,請檢查表格")def makedata():listid, listname, listkey, listcontent, listurl, listfangshi, listqiwang=datacel()make_data=[]for i in range(len(listid)):make_data.append({'url':listurl[i],'key':listkey[i],'content':listcontent[i],'fangshi':listfangshi[i],'qiwang':listqiwang[i]})return make_dataif __name__ == '__main__':data_test = makedata()for i in range(len(data_test)):print(data_test[i])

2、數據使用

import unittest, requests from ddt import ddt,data #數據驅動 from unittest_excel.get_excel import makedata #引用數據加載模塊 data_exce=makedata() #變量=makedata()返回值 list,每個元素是字典、用例 @ddt class TestStringMethods(unittest.TestCase):def setUp(self):print('+++')def tearDown(self):print('---')@data(*data_exce)def test_url(self,data_exce):print(data_exce['url'])print(data_exce['key'])print(data_exce['content'])print(data_exce['fangshi'])print(data_exce['qiwang'])@data(*data_exce)def test_request(self,data_exce):r=requests.post(url=data_exce['url'],json=data_exce['key'])print(data_exce['url'],r.status_code)if __name__ == '__main__':unittest.main()

?3、單個目標驗證

''' 這里暫時只比較了返回的value是否和預期一致的情況,沒有比較目標的鍵值都相同以及目標的層級 dict:待測目標 objkey:目標key objvalue:目標value ''' def dict_get(dict, objvalue, default):tmp = dictfor k,v in tmp.items():# 如果dict中的value和目標value相同,則返回value,這里也可以改成鍵值都相等if v == objvalue:return velse:if (type(v).__name__ == 'list'):#如果類型是list,且不為空if len(v)>=1:for i in range(0,(len(v))) :ret= dict_get(v[i], objvalue, default)#遞歸調用,如果不是返回default,則跳出遞歸if ret is not default:return retif (type(v).__name__ == 'dict'):#如果類型是dict,且不為空if len(v)>=1:for i in range(0,(len(v))) :ret = dict_get(v, objvalue, default)#遞歸調用,如果不是返回default,則跳出遞歸if ret is not default:return retreturn default#找不到時返回的默認值if __name__ == '__main__':test={"sites": [{ "name":"test" , "url":"www.test.com" },{ "name":"google" , "url":"www.google.com" },{ "name":"weibo" , "url":"www.weibo.com" }]}a=dict_get(test,"www.weibo.co",'未找到')print(a)

4、整個response驗證,這里是以單個目標驗證為基礎的方法

from Template_Log.log import LOG,logger from unittest_t3.check_kv import dict_get@logger('斷言測試結果,通過返回pass,失敗返回fail') def assert_in(assert_hope,response):if len(assert_hope.split('=')) > 1:#目標示例: assert_hope:name=google&url=www.google.comdata = assert_hope.split('&')#分割后示例:[name=google,url=www.google.com]result = dict([(item.split('=')) for item in data])#分割后示例: {name:google,url:www.google.com} value1=[]for value in result.values():s=dict_get(response, value, None)#期望的value和響應response對比,如果有相同就返回valueif (s != None):value1.append(s)else:return 'fail'print('斷言通過,斷言的實際值是:',value1)return 'pass'else:LOG.info('填寫測試預期值')raise ('請填寫期望值')

三、實例

import json,ddt import unittest,requests from Template_Log.log import LOG,logger#數據驅動 from unittest_t2.get_excel import makedata from unittest_t3.check_all import assert_in from unittest_t3.xmltojson import Xml2Json data_exce=makedata()@ddt.ddt class TestStringMethods(unittest.TestCase):def setUp(self):LOG.info("start_here")def tearDown(self):LOG.info("end_here")@logger('進入用例test_insert')@ddt.data(*data_exce)def test_insert(self,data_exce):r=requests.post(data_exce['url'],data=data_exce['key'])try:apijson = json.loads(r.text)except Exception:apijson = Xml2Json(r.text).resultprint('返回結果:', r.json())print('期望值:',data_exce['qiwang'])LOG.info('返回結果:%s'%apijson)qingwang=assert_in(data_exce['qiwang'],apijson)LOG.info('斷言結果:%s'%qingwang)self.assertEqual(qingwang,'pass',msg='預期和返回一致')if __name__ == '__main__':unittest.main()

?

轉載于:https://www.cnblogs.com/yinwenbin/p/10610986.html

總結

以上是生活随笔為你收集整理的接口之用例编写、验证的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美日韩亚洲国产一区 | 另类小说亚洲色图 | 淫片一级国产 | 欧美最猛黑人xxxx黑人猛交 | 亚洲在线a| 中文字幕亚洲综合 | 日本在线观看免费 | 国产二三区 | 日本少妇毛茸茸高潮 | 麻豆高清免费国产一区 | 日韩专区在线 | 少妇专区 | 亚洲毛片在线免费观看 | 久久偷看各类wc女厕嘘嘘偷窃 | 天堂在线一区二区 | 九九热精彩视频 | 久久免费成人 | 夜夜操免费视频 | 国产精品第8页 | 婷婷亚洲综合五月天小说 | 九九精品视频在线观看 | 欧美大片免费观看网址 | 国产欧美日韩精品区一区二污污污 | 日韩av日韩 | 亚洲九色 | 青娱乐国产在线视频 | 9191国产精品 | 亚洲第99页| 男女一区| 亚洲毛片一区 | 亚洲精品少妇一区二区 | 后入内射无码人妻一区 | 亚洲蜜臀av一区二区三区 | 精品国产一区二区三区久久久蜜臀 | 中国大陆高清aⅴ毛片 | 成人av网址在线观看 | 久久精品国产免费看久久精品 | 欧美不卡网 | 少妇系列在线观看 | 精品国产91| 欧美三级午夜理伦三级中视频 | 成人h动漫精品一区二区器材 | 成年人黄色小视频 | 精品一性一色一乱农村 | 亚洲人在线观看视频 | 日本精品在线视频 | 网站色| 大地资源二中文在线影视免费观看 | 麻豆人妻少妇精品无码专区 | 黄色无遮挡 | 阿v天堂2017 欧美小视频在线观看 | 色婷婷在线影院 | 精品国产网 | 欧美乱妇日本无乱码特黄大片 | av图片在线观看 | 国产精品123区| 三级av在线免费观看 | 最色网站 | 国产亚洲欧美一区二区 | 精品人妻无码专区在线 | 美女脱了内裤喂我喝尿视频 | 最近最经典中文mv字幕 | 亚洲一二区在线 | 国产精品久久久久久久久免费相片 | 成人看的视频 | 麻豆一区二区三区四区 | 国产一级特黄aaa大片 | 综合激情久久 | 超碰99在线观看 | 久久久麻豆 | 日韩在线观看你懂的 | 91麻豆视频 | 91香蕉视频污污 | 岛国av在线| 久草午夜 | 网站av在线| 欧美成综合 | 久久嫩草 | 国产无套内射又大又猛又粗又爽 | 一级影片在线观看 | 中国在线观看免费高清视频播放 | 国产精品久久久久9999 | av2018| 亚洲色图少妇 | 国产精品不卡在线 | 香蕉色网| 97色在线 | 秋霞av鲁丝片一区二区 | 日韩国产精品一区二区 | 在线观看av片 | 国产精品三级av | 国产精品av久久久久久无 | 午夜影视体验区 | 欧美整片第一页 | 日韩高清免费观看 | jizz欧美性11 | 高跟鞋肉丝交足91 | 五月激情小说网 | 欧美综合视频 |