#coding=utf-8
import unittest
import requests
import warnings
import json
from ddt import ddt,data
from tools.do_excel import doexcel
from tools.my_log import mylog
from tools import project_path
from tools.get_data import getdata
from tools.do_regx import doregx
import jsonpath
my_logger = mylog()
res = doexcel(project_path.excel_path)
test_data = res.get_data()
@ddt # 裝飾測試類
class doassert(unittest.testcase):
'''與預期進行判斷,將報錯寫回文件及log日誌'''
@classmethod
def setupclass(cls):
warnings.******filter('ignore', resourcewarning)
@data(*test_data) # 脫一層外套操作,裝飾測試方法,拿到幾條資料則執行幾條用例
def test_assert(self,item):
result = requests.request(method=item['method'],url=item['url'],headers=eval(item['headers']),data=eval(doregx.do_regx(item['data'])),cookies=getattr(getdata,'cookies'))
result_list =
# 判斷,如果通了,執行下方遍歷新增預期
for keys in eval(item['keys']):
if jsonpath.jsonpath(result.json()['body'], '$..' + keys) == false:
res.write_back(item['sheet_name'], item['case_id'] + 1, 9, 'false')
my_logger.my_log("報警!開發修改返回引數名稱了,返回結果:{}".format(json.dumps(result.json(),sort_keys=false,separators=(',',':'),indent=2,ensure_ascii=false)), 'error')
raise result.json()
else:
for result_values in jsonpath.jsonpath(result.json()['body'], '$..' + keys):
for i in eval(item['expected']):
try:
self.assertin(i,result_list)
res.write_back(item['sheet_name'], item['case_id'] + 1, 9, 'pass')
except assertionerror as e:
res.write_back(item['sheet_name'], item['case_id'] + 1, 9, 'false')
my_logger.my_log("校驗失敗:,請求結果:".format(e,json.dumps(result.json(),sort_keys=false,separators=(',',':'),indent=2,ensure_ascii=false)), 'error')
raise e
finally:
if item['sheet_name'] == 'login' and item['case_id'] == 3:
setattr(getdata, 'cookies', result.cookies)
elif item['depend']:
for i in eval(item['depend']):
setattr(getdata, i[1], jsonpath.jsonpath(result.json()['body'], '$..'+i[0])[-1])
my_logger.my_log("請求資料:,請求結果:".format(item,result.json()), 'info')
my_logger.my_log("請求結果:{}".format(result.json()), 'info')
my_logger.my_log("-"*100, 'info')
if __name__ == '__main__':
unittest.main()
delphi提示錯誤行號之Assert 斷言
一 用法 assert 表示式 1.如果為假 assert會產生乙個eassertionfailed異常,顯示為 assertion failed c src unit1.pas,size 0 line 34 2.如果不想再使用這些檢查時,可以使用 assertions off 或 c 編譯指令 3...
python筆記 assert用法
assert 主要用於測試 1 assert語句用來宣告某個條件是真的。2 如果你非常確信某個你使用的列表中至少有乙個元素,而你想要檢驗這一點,並且在它非真的時候引發乙個錯誤,那麼assert語句是應用在這種情形下的理想語句。3 當assert語句失敗的時候,會引發一assertionerror。測...
Python斷言assert處理
assert斷言語句用來宣告某個條件是真的,其作用是測試乙個條件 condition 是否成立,如果不成立,則丟擲異。一般來說在做單元測試的時候用的比較多,在生產環境 執行的情況下,不建議使用斷言,會讓程式abort掉。保護性的程式設計 正常情況下,並不是防範當前 發生錯誤,而防範由於以後的 變更發...