• get√接口自动化核心知识点浓缩,为面试加分


    日常接触到的接口自动化从实际目标可以划分为两大类:

    1、为模拟测试数据而开展的接口自动化

    这种接口自动化大多是单次执行,目的很明确是为了功能测试创造测试数据,节约人工造数据的时间和人工成本,提高功能测试人员的测试效率。

    2、在功能测试之前提前发现错误而开展的接口自动化

    这种接口自动化的工作流程跟功能测试一样,需要设计接口测试用例,然后执行接口测试用例。

    说白了就是对单接口进行功能校验,包括接口参数的必填性、长度字符类型限制、入参枚举值等是否正确、响应数据是否正确等进行校验。

    本文主要讲解第二种的接口自动化测试。浓缩了接口自动化的核心点进行实战,该实战或许能成为面试的加分点。

    接口测试用例设计

    代码读取接口测试用例

    利用pytest框架实现接口自动化

    利用python-requests完成接口请求

    利用jenkins+allure实现持续构建和输出测试报告

    需求分析

    Excel管理接口测试用例

    Pytest框架运行测试用例

    Jenkins集成构建

    Allure展示测试报告

    数据准备

    了解接口

    1.接口请求方式:get

    2.接口请求头:{"Content-Type": "text/html;charset=utf-8"}

    3.接口请求体:{"key": "*****************,"type": ""}

    4.参数值:type=guoji、keji、yule,默认top

    5.新闻请求:http://v.juhe.cn/toutiao/index

    备注:接口请求的key需要自行去聚合数据平台申请。

    设计接口测试用例

    接口测试用例设计思路跟功能测试用例设计一致,基本是是校验:必填项、字符类型长度限制、入参内容等。

    接口部分用例设计如下:(仅供参考)

    脚本目录设计

    完整的接口自动化测试,一般分为:数据、公共配置、接口脚本、报告四大基础文件夹。

    数据:Data文件夹用于存放数据,例如测试用例文档

    公共脚本:Common文件夹用于存放公共方法的代码文件,例如:读取测试用例代码文件等

    接口脚本:Request文件夹用于存放各个不同业务接口的代码文件,例如:获取新闻头条接口代码文件等

    报告:Report文件夹,用于存放测试结果报告

    脚本设计相关知识点

    读取测试用例

    知识点1:xlrd读取excel的基础方法

    1.打开文件对象:fb=xlrd.open_workbook(‘xls测试用例文件路径’)

    2.获取工作表名称:sheetnames=fb.sheet_names ()

    3.打开测试用例所在工作表:casesheet=fb.get_by_name(‘’用例所在工作表名称)

    4.获取测试用例条数(表格行数):rows=casesheet.nrows

    5.获取工作表内单元格值:cell_value=casesheet.cell_values(x,y),其中x 和y为单元格的横坐标和纵坐标

    6.由于需要通过pytest的装饰器进行参数化,所以读取到的单元格需要组合成列表的模板

    例如:

    case1=[‘url_01’,’method_01’,{body_01 },’expect_01’] case2=[‘url_02’,’method_02’,{body_02 },’expect_02’]

    最后提供给pytest读取的数据应该是:

    [[‘url_01’,’method_01’,{body_01 },’expect_01’], [‘url_02’,’method_02’,{body_02 },’expect_02’]]

    代码片段:

    使用列表追加的方法append()。

    备注:通过cell_values()读取到的单元格数据,默认是字符串str类型。

    知识点2:数据转化

    1.url、method是字符串类型,所以无需转化

    2.header和body需要通过json.loads()转为json格式

    接口请求

    知识点1:requests接口请求基础

    1.发起接口请求:

    resq=request.get() resq =request.post()

    2.获取响应数据并转为json格式:resq.json()

    3.断言:assert

    4.提取响应内容:jsonpath语法

    response[‘msg’] response[‘data’][‘name’]

    知识点2:pytest框架

    环境安装:

    pip install pytest

    1.Pytest使用规则:用例和脚本文件必须以test开头

    2.参数化执行用例:Pytest装饰器@pytest.mark.aprametrize()

    a)单个参数写法:@pytest.mark.parametrize('inData',[10,20]),第一个参数为变量名称,第二个为参数值。不需要设置循环读取参数值,因为pytest的装饰器会自动循环读取。

    b)多个参数写法:(参数值以元组形式写)@pytest.mark.parametrize('第一个参数名称,第二个参数名称'),[(第一个参数的第一个值,第一个参数的第二个值),(第二个参数的第一个值,第二个参数的第二个值)]。

    c)不需要设置循环读取参数值,因为pytest的装饰器会自动循环读取。

    3.本地调试运行脚本:

    接口自动化运行脚本到生成allure-html报告,分为2步骤:

    第1步:alluredir生成测试报告数据源文件json,存入report文件夹内

    pytest.main(['接口请求脚本文件.py','-s','--alluredir=../report/'])

    第2步:从report文件夹内将测试报告数据源文件json转为html报告

    os.system('allure generate ../report/ -o ../report_html/')

    持续构建

    知识点:jenkins构建+allure测试报告

    1.Jenkins环境搭建

    2.下载allure报告插件

    3.构建

    a)构建:利用pytest命令执行脚本,并生成allure源数据

    b)构建后操作:添加allure report(jenkins会自动将allure源数据组合成html报告)

    结果

      下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

  • 相关阅读:
    Spring笔记框架
    Lambda表达式
    zookeeper高级特性
    微信小程序官方组件目录结构
    java基于ssm的考试辅导网站
    并联电容器电容量测试
    每日leetcode_2441_对应负数同时存在的最大整数
    【Crypto-m】基于go-zero框架的通信加密中间件管理工具。使用不对称和对称的混合加密策略(hybrid-encryption)
    ADSP-21489的图形化编程详解(3:音效开发例程-直通三个例程讲清楚)
    js实现图片懒加载
  • 原文地址:https://blog.csdn.net/qq_73332379/article/details/133314705