TEP自動化測試工具

2022-09-06 11:03:22 字數 3143 閱讀 5269

# 查詢yaml檔案 並返回

def read_yaml(yaml_name):

'''讀取yaml,將yaml反序列化,就是把yaml格式轉換成dict格式

:return:

'''try:

yaml_file = "../tests/test_case/" + yaml_name

with open(yaml_file, encoding="utf-8") as f:

value = yaml.load(f, loader=yaml.fullloader) # 檔案流,載入方式

return value

except exception as e:

yaml_file = "./tests/test_case/" + yaml_name

with open(yaml_file, encoding="utf-8") as f:

value = yaml.load(f, loader=yaml.fullloader) # 檔案流,載入方式

return value

import pytest

from fixtures.fixture_your_name import read_yaml, ys, cmp

from tep.client import request

from loguru import logger

import time

import decimal

import json

import allure

@allure.description("""簡介:此執行集只做除錯使用""")

class test_examine(object):

yaml_data = read_yaml("test_all_examine.yaml") # 獲取測試集檔案內容

@allure.description_html("""

""")

@pytest.mark.flaky(reruns=3, reruns_delay=3) # 失敗重試 每3秒重試一次,共重試3次

@pytest.mark.parametrize('yaml_case', yaml_data) # 資料驅動,讀取用例執行集yaml檔案中的列表,

@allure.title('審核模組')

def test_examine(self, yaml_case, env_vars, config):

api = ys(yaml_case, "url")[0] # ys 只是封裝了乙個 jsonpath 查詢的公共方法

method = ys(yaml_case, "method")[0]

params = ys(yaml_case, "params")[0]

apinam = ys(yaml_case, "name")[0] # 介面名稱

headers = ys(yaml_case, "headers")[0]

url = env_vars.domain + api # 完整url

logger.info("當前請求用例:%s,url:%s,請求方法:%s,params:%s,headers:%s"%(apinam, url, method, params, headers))

# 起始時間

start = time.process_time()

# 介面請求

response = request(method, url=url, headers=headers, json=params)

# 請求結束時間

end = time.process_time()

# 介面耗時

elapsed = str(decimal.decimal("%.3f" % float(end - start))) + "s"

logger.info(' 介面:%s,*************** 執行耗時:%s ***************' % (url, elapsed))

ret = response.json() # 獲取介面json 型別響應:ret

case_id = str(ys(yaml_case, 'case_id')[0])  # 用例唯一c ase id

check_field = read_yaml(ys(yaml_case, "expected_result")[0]) # yaml用例需要校驗id

# 取出 當前用例需要校驗的json響應:chek_data

chek_data = none

for check in check_field:

if check.get(case_id):

chek_data = check.get(case_id)

break

# 開始校驗

for r in ret:

print('-'*50 )

check_response = cmp(json.dumps(chek_data), json.dumps(r))

if check_response == 0:

print('當前校驗json包含在響應列表中。'*10)

if __name__ == '__main__':

pytest.main(["-s", "-v", "examine_test.py"])

# pytest --tep-reports 生成測試報告

自動化測試工具

二 如何實施自動化測試 自動化測試指軟體測試的自動化,在預設狀態下執行應用程式或者系統預設條件包括正常和異常,最後評估執行結果。將人為驅動的測試行為轉化為機器執行的過程。自動化測試框架一般可以分為兩個層次,上層是管理整個自動化測試的開發,執行以及維護,在比較龐大的專案中,它體現重要的作用,它可以管理...

自動化測試工具monkey

monkey是android中的乙個命令列工具,可以執行在模擬器裡或實際裝置中。它向系統傳送偽隨機的使用者事件流 如按鍵輸入 觸控螢幕輸入 手勢輸入等 實現對正在開發的應用程式進行壓力測試。monkey測試是一種為了測試軟體的穩定性 健壯性的快速有效的方法。a 測試的物件僅為應用程式包,有一定的侷限...

自動化測試工具分析

目前在國內使用的最多的自動化測試工具就是qtp,以至於許多人錯誤的理解為自動化測試就是使用qtp進行一下錄製,然後就是自動化測試了,這種理解是有偏差的。qtp 是hp公司開發的乙個款自動化測試工具,名氣很大,但是售價也非常昂貴,國內有一些牛人破解了qtp,進行使用,但是大公司一般不會採用這種方式,要...