首页 > 其他分享 >案例4 基于Excel的接口测试框架

案例4 基于Excel的接口测试框架

时间:2023-06-14 11:22:39浏览次数:50  
标签:变量 Excel 接口 案例 格式 字典 断言

简单版

读取以下格式excel(仅第一张Sheet), 逐个发送接口,断言接口返回200, 并将状态及错误信息写回Excel

已知:Excel中接口编写格式规范如下

  1. url如果有查询参数,要写到url中,例如?a=1&b=2
  2. 如果需要添加自定义请求头 按 key:value格式编写,:左右允许有空格,每行一个
  3. 请求数据支持表单和JSON格式,如果数据形似JSON格式 (如去除前后空格或空行后以{或[开头),按JSON格式发送数据
    否则按表单格式发送数据,表单变量和请求头变量编写格式一致,已:分开,左右允许有空格,如果值以<>包裹,则视为一个文件路径,按multipart/formdata格式发送文件
    注意:不使用其他测试框架,自己写循环和异常处理,如果断言状态码为200失败则视为FAIL,其他出错认为 ERROR, 结果根据状态单元格填充不同的颜色

难度版:

增加变量提取和断言


已知:

  • 在每个接口运行后,生成一个系统变量response (requests库的响应对象),并存入一个字典格式的上下文变量中
  • 允许用户使用$上下文中的变量名 (如 $response)来使用变量,并提取生成新的变量,放入上下文字典中
  • 允许用户使用标准 Python表达式来进行断言 ,断言中支持上下文变量引用 如 $respoonse.status_code == 200
  • 断言中也可以使用前面提取的变量,下面的接口url, 请求数据,headers,数据提取,断言中也支持引用上面生成的变量

思路

  1. 读取excel得到所有接口数据列表(跳过标题行或,和标题行组成字典格式)
  2. 按requests.request()方法的参数要求清洗组装数据 得到:
{"method": "GET", "url": "https://....", "headers": {}, "data": {}, "json": {}, "files": {}} 
  • 其中headers要求是一个字典,可以没有或为None, 例如 {"flag": "test", "token": "JWT abcd"}
  • data是所有非文件的表单数据,字典格式 例如 {"name": "kevin", "password": "test"}
  • json从excel单元格中读出来是字符串,要用json.loads() 转为字典 (或列表),可能有异常(用户填写的JSON格式不合规),如果数据解析出错,该用例状态为ERROR
  1. 遍历清理后的数据 列表,for循环发请求,断言响应状态码为200, 并做异常捕获(发请求 和 断言一起捕获),分别捕获断言异常和其他异常,断言异常时状态为FAIL, 并记录异常信息,其他异常时状态为ERROR并记录异常信息
  2. 将状态回写到原Excel,添加单元格颜色,并保存(也可以生成新Excel, 不破坏原格式)

参考

标签:变量,Excel,接口,案例,格式,字典,断言
From: https://www.cnblogs.com/superhin/p/17479688.html

相关文章

  • 真实案例:Feign 切换 okhttp 无法生效,被老大骂的有点慌!
    来源:https://www.cnblogs.com/mufeng3421/p/11442412.html提示:如果只看如何解决问题,请看文章的末尾如何解决这个问题1.场景描述最近项目中使用了feign当做http请求工具来使用、相对于httpclient、resttemplate来说,fegin用起来方便很多。然后项目有httptrace的需求,需要输出请求......
  • 拼多多接口|api接口数据采集获取商品详情数据源代码Java演示
    ​拼多多提供了商品API,可以通过该API获取拼多多所有商品的详细信息,具体步骤如下: 申请开放平台接入。注册获取apikey和apisecret,调用API时需提供。调用拼多多API,获取商品详情。请求参数:参数说明通用参数说明version:API版本key:调用key,测试key:test_api_......
  • 【视频】ARIMA时间序列模型原理和R语言ARIMAX预测实现案例
    全文链接:http://tecdat.cn/?p=32773原文出处:拓端数据部落公众号分析师:FeierLiARIMA是可以拟合时间序列数据的模型,根据自身的过去值(即自身的滞后和滞后的预测误差)“解释”给定的时间序列,因此可以使用方程式预测未来价值。任何具有模式且不是随机白噪声的“非季节性"时间序列......
  • 接口自动化学习
    1、pytest要生成allure可以解析的测试结果文件①装pytest的allure插件。pipinstallallure-pytest ②运行用例的时候生成结果文件:pytest--allure=相对于rootdir的目录 ③使用allure的命令生成报告:跳转到rootdir下,运行allureserve文件名 ......
  • 个人经历过的接口自动化发展
    软件行业发展也有几十年了,接口测试也是测试人员需要具备一项测试技能。随着测试技术的发展,接口测试也从原来的单一的人工调用,慢慢的发展成为通过自动化的方式批量执行。大大的节省了测试人员的工作,让测试人员有更多的时间去做专项测试、发散测试等其他的测试,同时也大大的保证......
  • 基于XC7Z100+OV5640(DSP接口)YOLO人脸识别前向推理过程(部分5)
    Stream_rx模块代码编写功能Stream_rx模块是一个用来接收PS端发送的数据(包括权重、偏置、输入数据、激活查找表等)的模块,需要完成两个功能:完成对DMA数据的接收功能,并且区分当前接收的是哪一种类型的数据(根据data_type寄存器判断)。产生write_finish信号,给到main_control模块,......
  • python: read excel
     """Insurance。pyedit:geovindu,GeovinDu,涂聚文date2023-06-13保险类"""importsysimportosclassInsurance:"""保险类"""def__init__(self,InsuranceName,InsuranceCost,IMo......
  • post、raw、json调用第三方接口
    1、调用第三方接口,对方接口文档写到”请求方式postjson格式、请求参数json格式“,看不懂,就用postMan试试看。发现只有一种方式能调用通, 2、 3、Content-Type:application/json  4、根据上面的方式,所有写了下面的方法:/****@paramurl接口地址*@paramputData......
  • 分享一个Java功能小案例(代码已开源哦)
    工程合集工程列表地址预览B站抖音......
  • 谈抽象类与接口的区别之一
    评:谈抽象类与接口的区别之一一、抽象类:抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的......