Requests14--判斷返回結果是否正確


判斷響應結果的正確性(檢查點,斷言)

用於比較測試的實際結果與預期結果

常用的比較運算符

==

        精確比較
        通常用於整體比較
        比較適合json格式的響應文本

in

在...中
預期結果 in 實際結果
通常用於部分數據存在性判斷
比較適合text/html類型的響應文本

使用正則表達式模糊匹配

re.search(規則字符串,字符串)
  需要導入re包
作用:
  在字符串中的任意位置匹配規則字符串,並返回第一個成功的匹配
  如果沒有找到,返回None
規則字符串
  .*
    .表示任意一個字符,但不匹配換行符
    *表示可以重復0到多次

判斷接口返回是否正確

"""
接口需求
    接口地址:http://192.168.139.137:8000/login_action/
    方法:post
    參數:username,password
    返回值:包含文本“<!--發布會表單-->”
    數據庫:guest
    數據表: auth_user
"""
import requests
url = "http://192.168.139.137:8000/login_action/"
data = {'username':'admin','password':'admin123456'}
r = requests.post(url,data)
print(r.text)
print("<!--發布會表單-->" in r.text)
if '<!--發布會表單-->' in r.text:
    print("正常登陸--測試通過")
else:
    print('測試失敗')

判斷接口返回是否正確

"""
    接口需求
    接口地址:http://192.168.139.137:8000/sign/get_event_list/
    方法:get
    參數:eid
    返回值:json類型
        {'status': 10021, 'message': 'parameter error'}
"""
import requests
url = 'http://192.168.139.137:8000/sign/get_event_list/'
data = {'eid':""}
r = requests.get(url,data)# 省略url= params=
print(r.text)#結果只要是花括號就是json格式
print(r.json())
expect = {'status': 10021, 'message': 'parameter error'} # 預期結果字典
if expect == r.json():# 不能改成r.text 因為expect是字典,注意一個標點符號不同也會比對失敗
    print("測試通過")
else:
    print("測試失敗")

判斷接口返回是否正確

"""
判斷參數值不存在時,接口整體返回是否正確
接口需求
    接口地址:http://192.168.139.137:8000/sign/get_event_list/
    方法:get
    參數:eid
    返回值:json類型
        {'status': 10022, 'message': 'query result is empty'}
    數據庫 guest
    數據表 sign_event
"""
import requests
url = "http://192.168.139.137:8000/sign/get_event_list/"
data = {'eid':3}# 參數,將來就是測試用例
r = requests.get(url,data)
print(r.json())
expect = {'status': 10022, 'message': 'query result is empty'}
if expect == r.json():#預期結果 == 實際結果
    print("測試通過")
else:
    print("測試失敗")

判斷接口關鍵字段返回是否正確

"""
接口需求
    接口地址:http://192.168.139.137/interface/4/
    方法:get
    參數:無
    返回值:json類型
    {'name': 'Balla_兔子', 'age': 22, 'isVip': True, 'isNul': None}
"""
import requests
url = "http://192.168.139.137/interface/4/"
r = requests.get(url)
expect = {'name': 'Balla_兔子', 'age': 22, 'isVip': True, 'isNul': None}
if expect == r.json():
    print("測試通過")
else:
    print("測試失敗")

判斷接口關鍵字段返回是否正確

"""
接口需求
    接口地址:http://192.168.139.137:8000/sign/get_event_list/
    方法:get
    參數:eid
    返回值:json類型
    {'status': 200, 'message': 'success', 'data': {'eid': 1, 'name': '小米手機發布    會', 'limit': 2000, 'status': True, 'address': '北京奧林匹克公園水立方', '          start_time': '2016-11-21T15:25:19'}}
"""
# 導包
import requests
url = "http://192.168.139.137:8000/sign/get_event_list/"
data = {'eid':1}
# 指定地址和參數,發送請求
r = requests.get(url,data)
# 比對結果是否正確
status=200
message='success'
if status==r.json()['status'] and message==r.json()['message']:
    print("測試通過")
else:
    print("測試失敗")
"""
模糊匹配響應中的關鍵數據
    接口需求
    接口地址:http://192.168.175.128/interface/5/login/
    方法:post
    參數:username,password
    返回值:text/html
        用戶<u><b><font color=red>admin </font></b></u>登錄成功!<p></body>
"""
# 使用正則表達式進行模糊匹配 --開發 運維 測試都有
# 正則 -- 符合要求的意思
import requests
url = "http://192.168.175.128/interface/5/login/"
data = {'username':'admin','password':'admin'}
r = requests.post(url,data)
print(r.text)
# 正則表達式 Regular Expression 符合規則的式子
regular = '.*用戶.*admin.*登錄成功.*'
# 用戶左邊有什么都可以 右邊得有admin 在往右要有登陸成功
# .表示任意1個字符
# *表示有0到多個
# .*表示什么內容都可以
import re
# search表示 查找
result = re.search(regular,r.text)
print(result)
if result is not None:
    print("測試通過")
else:
    print("測試失敗")


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM