python+requests+yaml实现接口自动化用例
前言:最近也思考了一下怎么做接口自动化,以下内容属于自己目前阶段所学习到的内容,也逐渐投入自己实际工作中,把最近的学习新得跟大家分享下,话不多说,切入正题。
对接口自动化测试用例的思考:接口测试大多测试人员都知道,属于黑盒测试范畴,针对拿到的接口地址,接口的参数,请求头格式对各种正常异常的参数输入,检查返回值是否跟预期结果一致,当然设计到接口安全性的问题也需要考虑进去,这里暂时不说明。那么接口自动化是不是我们可以提取系统中重要的接口进行接口用例的维护,然后实现每次版本发布前,执行一遍,看看这次开发发的版本,接口是否都是正常的,或者说,开发是不是动了哪些接口?导致我之前写的接口断言报错了?我自己觉得可行,因为我们都知道一般来说接口的变动是比较小的,所以说基于这一点,我觉得可行性还是比较高。因为最近实际工作中也会遇到开发发的版本质量很低,手工去验证确实太费时间了,不去验证的话,总感觉不放心,实际就是,前一个版本问题改好了,这个版本问题又出来了。因此我觉得接口自动化真的有必要,可以减轻很多手工压力。
接口自动化用例设计:我们知道现在比较主流的接口自动化测试是用python中的requests库来进行http请求,然后接口自动化接口数据驱动的话,需要把测试数据存放在文件中,目前比较受欢迎的是excel、json文件、yaml文件三种方式,最近三种文件我都用过,只能说各种优劣势吧,但是参考一些大佬的意见,好像yaml文件还是更多点,我最近还简单使用一下yaml文件,确实好用点。大家可以选择性使用其中一种。
整体项目目录:
case里面放置所有测试用例,data里面放所有测试文件, report里面放测试报告、utils里面放一些公共方法,例如读取yaml文件内容,因为我会用pytest执行用例,根目录的conftest.py是针对控制台收集用例中文乱码进行重新编码。
yaml文件中内容展示:
ids是展示接口测试的测试思路/测试输入,后面是结合pytest.mark.paramtrize进行参数化的ids输入,test_data是我们的维护的测试数据,我这边就是维护请求方式、请求地址、请求参数、请求头、预期结果
utils中读取yaml文件方法:
case的测试用例文件:
我们从utils里面的read_yaml文件中读取yaml文件内容后,然后测试用例中需要的参数,对应传入即可,这里涉及到yaml文件维护的数据到底是什么?pytest的参数化怎么用?这里暂时不去聊了。总体到这里我们就可以实现我们的需求了
测试报告:
python+requests+yaml实现接口自动化用例的更多相关文章
- python+requests+yaml实现接口自动化用例(二)---升级版
一.前言:前面一段时间封装的接口自动化测试框架用了一段时间发现还是有很多弊端的,目前又改良了一下,可以说整体思路全都推翻了,功能比之前强大许多,有兴趣的可以私信我单独交流,希望共同学习进步! 二.项目 ...
- 纯python自研接口自动化脚本更新版本,让小白也能实现0到1万+的接口自动化用例
查看完整文章点击原文链接:纯python自研接口自动化脚本更新版本,让小白也能实现0到1万+的接口自动化用例 你是否还在用postman\jmeter做接口自动化吗?用python的开源框架[unit ...
- 【Golang】基于录制,自动生成go test接口自动化用例
背景 之前写过一篇博客,介绍怎么用Python通过解析抓包数据,完成自动化用例的编写.最近这段时间在使用go test,所以就在想能不能也使用代码来生成自动化用例,快速提升测试用例覆盖率.说干就干. ...
- Jmeter使用之:高效组织接口自动化用例技巧
Jmeter怎么使用的文章多如牛毛,但怎么组织好测试用例,则几乎很难看到.在本文,我将把Jmeter下怎么组织测试用例的几点心得分享给大家,希望能给你一些帮助或启示. 1.善用“逻辑控制器”中的“简单 ...
- python+pytest接口自动化(12)-自动化用例编写思路 (使用pytest编写一个测试脚本)
经过之前的学习铺垫,我们尝试着利用pytest框架编写一条接口自动化测试用例,来厘清接口自动化用例编写的思路. 我们在百度搜索天气查询,会出现如下图所示结果: 接下来,我们以该天气查询接口为例,编写接 ...
- 转载:python + requests实现的接口自动化框架详细教程
转自https://my.oschina.net/u/3041656/blog/820023 摘要: python + requests实现的接口自动化框架详细教程 前段时间由于公司测试方向的转型,由 ...
- python + requests实现的接口自动化框架详细教程
前段时间由于公司测试方向的转型,由原来的web页面功能测试转变成接口测试,之前大多都是手工进行,利用postman和jmeter进行的接口测试,后来,组内有人讲原先web自动化的测试框架移驾成接口的自 ...
- 【Robot Framework 项目实战 04】基于录制,生成RF关键字及 自动化用例
背景 因为服务的迁移,Jira版本的更新,很多接口文档的维护变少,导致想要编写部分服务的自动化测试变得尤为麻烦,很多服务,尤其是客户端接口需要通过抓包的方式查询参数来编写自动化用例,但是过程中手工重复 ...
- Android UI自动化用例设计技巧
一.封装方法 1.编程如何越来越快: 首先,需要经验丰富,知识面广. 其次,每一个熟练编程的人员,都会有自己的一个库,解决各种问题.各种通用的方法函数. 同理,自动化脚本也是编程,测试用例则为需求,U ...
随机推荐
- 踩了个DNS解析的坑,但我还是没想通
hello大家好,我是小楼. 最近踩了个DNS解析的小坑,虽然问题解决了,但排查过程比较曲折,最后还是有一点没有想通,整个过程分享给大家. 背景 最近负责的服务要置换机器.置换机器可能很多小伙伴不知道 ...
- “九韶杯”河科院程序设计协会第一届程序设计竞赛 D数列重组 next_permutation
"九韶杯"河科院程序设计协会第一届程序设计竞赛 D数列重组 next_permutation 题目 原题链接: https://ac.nowcoder.com/acm/conte ...
- Android四大组件——Activity——Activity的生命周期
Activity状态: 每个Activity在其生命周期中最多可能有四种状态 1.运行状态:处于栈顶时.初次创建处于栈顶时依次调用:onCreate(),onStart(),onResume().由不 ...
- netty系列之:netty中的核心MessageToMessage编码器
目录 简介 框架简介 MessageToMessageEncoder MessageToMessageDecoder MessageToMessageCodec 总结 简介 在netty中我们需要传递 ...
- 2. flddler响应显示乱码问题解决方案
Fiddler是一款强大Web调试工具,它能记录所有客户端和服务器的HTTP请求. Fiddler启动的时候,默认IE的代理设为了127.0.0.1:8888,而其他浏览器是需要手动设置.但是一开始使 ...
- 6.2 计划任务crond
创建.编辑计划任务的命令为crontab -e,查看当前计划任务的命令为crontab -l,删除某条计划任务的命令为crontab -r. 参数 作用 -e 编辑计划任务 -u 指定用户名称 -l ...
- nginx反向代理隐藏端口号和项目名
可利用nginx反向代理隐藏端口号和项目名,直接输入ip即可访问对应的tomcat项目,配置nginx安装目录的nginx/conf/nginx.conf文件,修改如下:(开了两个web项目:项目名为 ...
- 4.26JMetre分离数据、响应断言、动态参数、响应管理
修改 查询 默认查询 断言: 1.JSON断言 2.响应断言 :实际返回的值是否包含期望的值 参数化 相同的测试步骤,不同的测试数据.比如针对测试平台,使用不同的用户登陆进去来验证产品管理的业务. 在 ...
- .NET混合开发解决方案5 WebView2运行时与分发应用
系列目录 [已更新最新开发文章,点击查看详细] 发布使用Microsoft Edge WebView2的应用程序时,客户端计算机上需要安装WebView2运行时,可以安装自动更新的Evergr ...
- CentOS 8迁移Rocky Linux 8手记
前言 由于CentOS 8的支持已经到期了,.NET 6也不支持了,然后也无法升级,导致使用起来已经非常不便,无奈只有迁移服务器这个选项了. 选择发行版本一直是一个比较头疼的问题,首先我不是专门运维的 ...