第三节:接口自动化测试的实现

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协议类型的接口,还有别的类型的接口吗?

上一篇
下一篇
Copyright © 2022 Egon的技术星球 egonlin.com 版权所有 帮助IT小伙伴学到真正的技术