接口自动化框架搭建

本文详细介绍了接口自动化测试的流程,从需求分析、接口需求分析、用例设计到自动化测试用例函数的编写。文章还讨论了分层思想在测试框架中的应用,以及如何优化注册接口测试,包括测试报告不覆盖问题、动态手机号码生成和全量断言与部分断言的使用。此外,文章还探讨了测试金字塔、适合自动化测试的项目条件以及处理图片验证码的策略。

1.自动化测试流程

-- 需求分析。需求文档,接口文档,抓包接口

-- 测试计划。通常包含项目的进度,是否自动化,优先级

-- 测试用例(是从手工测试提取出来的)

-- 用例评审

-- 执行测试。(写代码)

-- 测试报告

接到项目之后,如何去进行需求分析:

1.需求文档,功能展示以及交互

2.接口文档,后端数据是怎么传输的

3.数据库账号,数据库地址,结构帮大家熟悉整个项目的轮廓,字段

4.测试环境,环境怎么搭建

5.原型图

测试计划:

通常是由测试经理或者项目经理来编写的

1.可行分析,是否要引入自动化,哪此场景引入自动化,哪此功能引入自动化,做自动化不是全量覆盖,不可能是所有用例都进行自动化,

2.风险因子,存在哪此风险

3.时间管控,主要是时间、技术、进度、优先级的管控

4.技术,使用什么技术(python、java),使用什么测试单元框架(unittest、pytest)

测试用例:

写到excel,手工测试用例,指的是全量的测试用例,不是自动化测试用例

案例:

通常来说,任何一个项目或是新功能,会先进行手工测试,也是要进行全量的用例编写

自动化测试主要包括:

1.冒烟测试:主流程是否能正常运行

2.回归测试:验证开发修复的bug是否正常,并没有引入新的bug

3.持续集成:一天要重复测试好几次

2.接口需求分析

接口文档:

-- 纸质(电子 )

-- open api,swagger(网站)

-- 什么都没有,全凭一张嘴(自己抓包)

通过抓包或postman调试工具来设计测试用例,预期结果

3.用例设计

用excel进行编写,最好是一个接口编写一个sheet页,这样好进行测试

注意json格式数据一定要规范,双引号,英文的逗号等

预期结果可以使用postman调试工具来获取

4.编写自动化测试用例函数

领导丢给你一个自动化测试计划

先不要着急做到十全十美,第一步是验证你的自动化测试程序是否能正常运行

先把功能实现

写一个单独的自动化测试用例函数。以test_开头,需要有请求发送,得到响应结果,断言,生成测试报告

新建一个test_register.py,代码如下:

import unittest
import requests


class TestRegister(unittest.TestCase):
    def test_register_01(self):
        '''步骤:
        1.准备测试数据
        2.发送接口请求,得到实际结果
        3.预期结果和实际结果的断言
        '''
        # 1.准备测试数据
        url = 'http://api.lemonban.com:8766/futureloan/member/register'
        method = 'post'
        headers = {'X-Lemonban-Media-Type': 'lemonban.v2'}
        json_data = {"mobile_phone": "", "pwd": "12345678"}
        expected = {
            "code": 1,
            "msg": "手机号为空",
            "data": None,
            "copyright": "Copyright 柠檬班 © 2017-2019 湖南省零檬信息技术有限公司 All Rights Reserved"
        }
        # 2.发送接口请求,得到实际结果
        response = requests.request(method=method,url=url,
                                    headers=headers,json=json_data)
        actual = response.json()
        # 3.预期结果和实际结果的断言
        self.assertEqual(expected,actual)
# 有多少条用例就可以写多少个自动化测试函数,这里就不写所有的了

新建一个run.py来收集用例,运行用例,代码如下:

import unittest
import unittestreport

# 收集测试用例
suite = unittest.defaultTestLoader.discover('tests')
# 生成测试报告
runner = unittestreport.TestRunner(suite)
runner.run()

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值