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