标签:手机 不可 案例 检查 json http 数据 测试基础 提示信息
用几个简单的案例,带你轻松了解接口测试
首先了解一下接口测试的重要性:
首先需要清晰的接口文档,标准如下:
输出参数
状态码;
提示信息;
每个参数名,每个参数类型;
每个参数业务含义;
每个字段长度;
案例一:发送一个get请求
import requests
# 请求的链接
url = 'https://dgateway.allhome.com.cn/organization/v1/basic/people/position/dictionaryList?postId=0'
# 发送get请求
r = requests.get(url)
# 请求的状态码 200代表成功
status = r.status_code
print(status)
# 请求的内容
j = r.json()
print(j)
输出结果:
案例二:发送一个post请求
import requests
# 请求的链接
url = 'https://dgateway.allhome.com.cn/organization/v1/basic/people/level/list'
# post请求以字典格式传入
data = {
"pageInfo": {
"page": 1,
"size": 3
},
"query": {
"postId": ""
}
}
# 发送post请求
r = requests.post(url, data)
# 请求的状态码 200代表成功
status = r.status_code
print(status)
输出结果:
import requests
# 请求的链接
url = 'https://dgateway.allhome.com.cn/organization/v1/basic/people/level/list'
# post请求以字典格式传入
headers = {"Content-Type": "application/json"}
data = {
"pageInfo": {
"page": 1,
"size": 3
},
"query": {
"postId": ""
}
}
# 发送post请求
r = requests.post(url, data=json.dumps(data), headers=headers)
# 请求的状态码 200代表成功
status = r.status_code
print(status)
# 请求的内容
print(r.content)
输出结果:
思考:对requests获取的原始数据,有几种形式?
https://www.jianshu.com/p/0e0336b370f3
案例三:接口状态码断言
import requests
# 请求的链接
url = 'https://dgateway.allhome.com.cn/organization/v1/basic/people/position/dictionaryList?postId=0'
# 发送请求
r = requests.get(url)
# 请求的状态码 200代表成功
status = r.status_code
# 进行接口的状态码断言,等于200则认为通过,不是200不通过
if status == 200:
print('用例测试通过')
else:
print('测试不通过')
print(status)
# 请求的内容
j = r.json()
print(j)
输出结果:
案例四:接口内容断言-正常情况
import requests
# 请求的链接
url = 'https://dgateway.allhome.com.cn/organization/v1/basic/people/position/dictionaryList?postId=0'
# 发送请求
r = requests.get(url)
# 请求的状态码 200代表成功
status = r.status_code
# 进行接口的状态码断言,等于200则认为通过,不是200不通过
if status == 200:
print('用例测试通过')
else:
print('测试不通过')
print(status)
# 请求的内容
j = r.json()
# 判断接口返回内容里面,有没有 权证部 内容
if '权证部' in str(j):
print('存在此数据')
else:
print('不存在此数据')
print(j)
输出结果:
案例五:接口内容断言-异常情况
判断接口返回内容里面,有没有 ‘权证部测试’ 内容
import requests
# 请求的链接
url = 'https://dgateway.allhome.com.cn/organization/v1/basic/people/position/dictionaryList?postId=0'
# 发送请求
r = requests.get(url)
# 请求的状态码 200代表成功
status = r.status_code
# 进行接口的状态码断言,等于200则认为通过,不是200不通过
if status == 200:
print('用例测试通过')
else:
print('测试不通过')
print(status)
# 请求的内容
j = r.json()
# 判断接口返回内容里面,有没有 权证部测试 内容
if '权证部测试' in str(j):
print('存在此数据')
else:
print('不存在此数据')
print(j)
输出结果:
讲到这里已经知道如何发送请求,如何使用断言;学习完大家还需要多敲多练。
思考:当url、path、data发生变化每次都需要更改代码是不是很麻烦!有什么办法可以解决吗?
案例六:封装接口-将接口和逻辑代码分开控制**
# baseurl 一般接口都是分测试接口和正式接口的,只需要修改ip即可
baseurl = 'https://dgateway.allhome.com.cn'
# 职级字典表接口
url_dictionaryList = baseurl + '/organization/v1/basic/people/position/dictionaryList?postId=0'
# 发送请求 使用config.来调用想要的接口 调用职级字典表
r = requests.get(config.url_dictionaryList)
# 请求的状态码 200代表成功
status = r.status_code
# 进行接口的状态码断言,等于200则认为通过,不是200不通过
if status == 200:
print('状态码校验过')
else:
print('状态码校验不通过')
print(status)
# 请求的内容
j = r.json()
# 判断接口返回内容里面,有没有 权证部 内容
# 权证部 增加了一个1
if '权证部' in str(j):
print('存在此数据')
else:
print('不存在此数据')
print(j)
输出结果:
练习到这个案例,会发现将接口封装后,每次接口链接变了,只需要修改config文件即可
案例七:封装接口-将接口和逻辑代码分开控制
上面讲到了如何将url与逻辑代码分开控制,但如果是post接口的话,参数也要进行分离
下面我们要对config.py进行修改
# baseurl 一般接口都是分测试接口和正式接口的,只需要修改ip即可
baseurl = 'https://dgateway.allhome.com.cn'
# 职级字典表接口
url_dictionaryList = baseurl + '/organization/v1/basic/people/position/dictionaryList?postId=0'
# 查询职级列表接口
url_list = {
'接口': baseurl + '/organization/v1/basic/people/level/list',
'headers': {"Content-Type": "application/json"},
'data': {
"pageInfo": {
"page": 1,
"size": 3
},
"query": {
"postId": ""
}
}
}
testapi.py修改
import requests
# 引入config配置接口的文件
import config
import json
# 发送post请求,通过config文件获取接口url 和接口的参数 ,如果参数更改了,咱们就修改config文件就可以了
url = config.url_list['接口']
data = config.url_list['data']
headers = config.url_list['headers']
r = requests.post(url, data=json.dumps(data), headers=headers)
# 请求的状态码 200代表成功
status = r.status_code
# 进行接口的状态码断言,等于200则认为通过,不是200不通过
if status == 200:
print('状态码校验过')
else:
print('状态码校验不通过')
# 输出状态码
print(status)
# 因为展示测试的接口没有json,所以只能输出content啦~
print(r.content)
输出结果:
总结:用到了 字典? 的小知识点,还用到了 引用包 的小知识点(网上资料特别多,不懂的可以自己查阅资料)
这个案例讲完已经学会了使用 config 分开控制接口和逻辑代码,本次课程也就结束了!大家课后要先复习本次课程讲解的内容,查阅相关的资料进行巩固。感谢大家的捧场,希望大家共同学习共同进步!
温馨提示:下一节我们将会学到如何对接口进行封装、引用unittest测试框架进行断言、生成测试报告
标签:手机 不可 案例 检查 json http 数据 测试基础 提示信息
原文地址:https://www.cnblogs.com/wyunuo/p/11442217.html