07-02-03接口自动化测试的实现
07-02-03接口自动化测试的实现
引言:
1 在做接口自动化测试前,进行一轮手工测试是有必要的。
可以保障系统环境能运行,还有重要的一点是确保接口是否已经开发完成,可以进行测试阶段的活动了。
这是第3篇
正文:
1. json转换的汇总:
1 http请求的时候把字典转换成json 用json.dumps()
tmp_response = requests.get(url=order_url, headers =conf_common.http_header,
data=json.dumps(data_order.input_body))
2 http响应的时候把 text转换成json 用json.loads
tmp_content = json.loads(tmp_response.text)
print(type(tmp_content),tmp_content)
2. 断言的汇总
1 拿到字段里第二层的值 : ["order"]["data"]
self.assertIsNotNone(tmp_content["order"]["data"], "获取db订单数据不全")
2 断言结果是空的
self.assertIsNone(tmp_content["order"]["data"], "获取db订单数据不全")
3 验证不能获取不存在的订单
def test_getnoneorder(self):
'''验证不能获取不存在的订单
:return:
'''
# 把默认请求的订单id 改成指定的不存在的订单id
data_order.input_body["order"]["id"]=conf_common.sepcial_ordernotexist
## 把 http请求的响应 赋值给tmp_response
print(conf_common.hostname + conf_common.order_url)
tmp_response = requests.get(url=order_url, headers =conf_common.http_header,
data=json.dumps(data_order.input_body))
## 把 tmp_response 进行json格式化 ,并赋值给tmp_content
tmp_content = json.loads(tmp_response.text)
print(type(tmp_content),tmp_content)
### 获取json数据中的值 的语法 [""]
print(tmp_content["order"]["data"])
self.assertEqual(200, tmp_response.status_code, "响应状态不是200")
self.assertIsNone(tmp_content["order"]["data"], "获取db订单数据不全")
4 验证不能获取不存在的订单
def test_getsuccess(self):
'''验证获取订指定单成功'''
# 把默认请求的订单id 改成指定的订单id
data_order.input_body["order"]["id"]=conf_common.special_orderexist
## 把 http请求的响应 赋值给tmp_response
print(conf_common.hostname + conf_common.order_url)
tmp_response = requests.get(url=order_url, headers =conf_common.http_header,
data=json.dumps(data_order.input_body))
## 把 tmp_response 进行json格式化 ,并赋值给tmp_content
tmp_content = json.loads(tmp_response.text)
print(type(tmp_content),tmp_content)
### 获取json数据中的值 的语法 [""]
print(tmp_content["order"]["data"])
self.assertEqual(200, tmp_response.status_code, "响应状态不是200")
self.assertIsNotNone(tmp_content["order"]["data"], "获取db订单数据不全")
总结:
1 业务场景方法是最重要的测试用例设计方法,必须要有。
2 性能测试主要还是接口层面的性能。
3 安全方面的测试越来越受到重视,是个不可忽视的部分。
4 在表格最后加上 【是否已自动化】可以方便的统计接口自动化覆盖率。
思考与延伸
1 一个接口的测试用例数量高达 30个,合适吗?
2 除了http协议类型的接口,还有别的类型的接口吗?