Python 封裝assert斷言類

2021-10-16 22:10:52 字數 2449 閱讀 5341

#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掉。保護性的程式設計 正常情況下,並不是防範當前 發生錯誤,而防範由於以後的 變更發...