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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python自动化测试问题及处理方法(一)

發布時間:2025/3/15 python 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python自动化测试问题及处理方法(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、接口自動化測試中,會用到測試賬號,如何合理運用賬號?

賬號一般用于接口登錄、接口用例傳參、操作sql等,目前賬號是寫到yaml配置文件里,如果1個賬戶使用會出現資源沖突,可以配置多個賬號使用,登錄腳本中、用例腳本中、sql腳本中,先將讀取過來的賬號設為全局變量,然后用到的地方進行替換就。保證了賬號的更換至需要動配置文件就可以了

二、接口自動化測試中,接口依賴前置數據較多,如何處理?

根據實際情況進行sql初始化數據或調前置接口
1、sql初始化數據
可能某個接口傳參數據依賴很多前置接口響應或很多前置條件,首先需要對業務非常熟悉,且相關數據表很熟悉,然后構造合理的sql操作,setup時進行數據初始化前置插入,teardown時清理掉產生的數據,還原環境,保證不對環境進行數據污染,下次可繼續復用

2、調前置接口
如果我當前接口依賴5個接口,調這5個接口,其中1個失敗,繼續重復執行多次,還是失敗就失敗掉當前接口

三、接口自動化測試中,接口是如何斷言?

1、固定單值,用例中寫四和響應結果斷言

2、固定多值,用例中寫四和響應結果斷言

3、變動單值,查庫與響應結果斷言

4、變動多值,列表展示數據,斷言前端用到展示出來的字段

2、變動多值,動態的多條列表數據斷言

例如:二手房源列表,有單價、總價、面積、朝向、多少人關注等字段

我是把功能用到的字段,多條數據同類型的分別append到一個列表里與數據庫查出來多條數據同類型的append到列表里進行斷言對比,這樣有多少個字段就要斷言對比多少次

?

四、斷言是如何封裝的?

可以根據不同類型進行歸類斷言:

1、code msg類? {"code":0,"msg":"成功"} 、{"code":2603,"msg":"手機號錯誤"}?

2、data列表數據類

json_data={
?? ?'count_tab_4': 13,
?? ?'total': 13,
?? ?'list': [{
?? ??? ?'created_at': '2019-12-19 16:10:01',
?? ??? ?'updated_at': '2019-12-19 16:15:01',
?? ??? ?'company': {
?? ??? ??? ?'full_name': '項目',
?? ??? ??? ?'short_name': '項目簡'
?? ??? ?},
?? ??? ?'task_sex': 1,
?? ??? ?'task_user_id_card': '610523198806273676',
?? ??? ?'task': {
?? ??? ??? ?'type_child_name': '軟件開發',
?? ??? ??? ?'users_type_txt': '用戶'
?? ??? ?}
?? ?}, {
?? ??? ?'created_at': '2019-12-17 11:25:02',
?? ??? ?'updated_at': '2019-12-17 11:30:02',
?? ??? ?'company': {
?? ??? ??? ?'full_name': '項目',
?? ??? ??? ?'short_name': '項目簡'},
?? ??? ?'task_sex': 1,
?? ??? ?'task_name': '啊啊啊任務啊啊',
?? ??? ?'task': {
?? ??? ??? ?'type_child_name': '軟件開發',
?? ??? ??? ?'users_type_txt': '用戶'}
?? ?}],
?? ?'page_size': 10,
?? ?'page': 1
}

class Assertion(object):sql_values_list = []response_values = []def __init__(self):self.test=ExecSql().exec_sqldef get_sql_data(self,project,sql_type,sql):'''查詢sql數據組合成list:param project::param sql_type::param sql::return:'''sql_values=self.test(project,sql_type,sql)for i in sql_values:for j in i:self.sql_values_list.append(j)def get_response_data(self,response_data, keys=[]):'''獲取接口響應數據組合成list:param response_data::param keys::return:'''if isinstance(response_data, list):for value in response_data:if isinstance(value, list) or isinstance(value, dict):self.get_response_data(value, keys)elif isinstance(response_data, dict):for i, j in sorted(response_data.items()):if i in keys:self.response_values.append(j)else:self.get_response_data(j, keys)else:passdef asser(self,expect,response_data,assert_type=None):'''斷言:param assert_type::param expect::param response_data::return:'''print(self.sql_values_list,self.response_values)if assert_type=='type1':assert self.sql_values_list==self.response_valuesassert eval(expect)['code'] == response_data['code']assert eval(expect)['msg'] == response_data['msg']

?

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Python自动化测试问题及处理方法(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

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