吐血整理,接口自动化测试-接口依赖/上传接口处理(项目实例)

这篇具有很好参考价值的文章主要介绍了吐血整理,接口自动化测试-接口依赖/上传接口处理(项目实例)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

常见的两种接口依赖处理方式

1、请求体的字段依赖
这种情况多数是在当前测试的接口,它的前置接口的请求体中的字段要拿来在当前的接口请求体中继续使用。

比如修改用户信息的接口,该接口会使用到用户名的字段,该字段是由创建用户时的请求体中传入的,创建用户的接口请求体我们做了参数化,让它动态生成用户名。

因为每次都是变化的,则当执行到修改用户信息的接口时,如果我们依然使用上个接口的参数化,势必会导致两者的用户名不一样,因此会导致接口执行失败,所以我们要对这种类型的接口进行接口依赖处理

吐血整理,接口自动化测试-接口依赖/上传接口处理(项目实例),接口自动化测试,软件测试,自动化测试,软件测试,自动化测试,python自动化测试,接口自动化测试,软件测试工程师,接口测试,接口自动化

我们直接在测试类的代码中处理接口依赖:

if case["check_info"] == 'user_info':
	user_name = json.loads(new_data)['name']
	case_logger.info("{:-^50s}".format(f"user_name:{user_name}"))
	setattr(do_re, 'user_name', user_name)

2、响应体的字段依赖
将响应体的字段拿来用在下一个接口的这种方式,在接口依赖中依然很常见,往往上一个接口为get类型的查询接口,我们从该接口的响应体中取对应的字段拿到下一个接口的请求体中使用。

吐血整理,接口自动化测试-接口依赖/上传接口处理(项目实例),接口自动化测试,软件测试,自动化测试,软件测试,自动化测试,python自动化测试,接口自动化测试,软件测试工程师,接口测试,接口自动化

我们直接在测试类的代码中处理接口依赖:

if case["check_info"] == 'get_op_svc_servicestage_domainId':
	op_svc_servicestage_domainId = res.json()['user']['domain']['id']
	case_logger.info("{:-^50s}".format(f"op_svc_servicestage_domainId:{op_svc_servicestage_domainId}"))
	setattr(do_re, 'op_svc_servicestage_domainId', op_svc_servicestage_domainId)

处理需要上传文件的类型接口

1、接口分析
这里直接在前端进行上传,通过Chrome浏览器的F12开发工具进行抓包,可以看到上传文件接口的请求与相应信息,因为是公司的项目接口,会做一些马赛克处理:

吐血整理,接口自动化测试-接口依赖/上传接口处理(项目实例),接口自动化测试,软件测试,自动化测试,软件测试,自动化测试,python自动化测试,接口自动化测试,软件测试工程师,接口测试,接口自动化

再看看请求参数:

吐血整理,接口自动化测试-接口依赖/上传接口处理(项目实例),接口自动化测试,软件测试,自动化测试,软件测试,自动化测试,python自动化测试,接口自动化测试,软件测试工程师,接口测试,接口自动化

我们可以从请求中看到,请求方式为multipart/form-data表单格式,并且注意到,虽然上传了文件,但是请求参数中并没有展示文件路径和文件名,而且fileList值为“binary”,那么可以知道上传的为文件的字节内容

2、postman示例
以postman示例,body选择form-data选项,key填入fileList[]并选择格式为file,在value中选择一个本地文件进行上传,然后发起请求:

吐血整理,接口自动化测试-接口依赖/上传接口处理(项目实例),接口自动化测试,软件测试,自动化测试,软件测试,自动化测试,python自动化测试,接口自动化测试,软件测试工程师,接口测试,接口自动化

3、requests示例
刚刚我们借助工具实现了上传文件的请求,postman中可以将我们的请求转化为python代码格式。

具体步骤如下:
先使用postman构建好参数并调试成功;
点击Save按钮下方的Code;

吐血整理,接口自动化测试-接口依赖/上传接口处理(项目实例),接口自动化测试,软件测试,自动化测试,软件测试,自动化测试,python自动化测试,接口自动化测试,软件测试工程师,接口测试,接口自动化

选择语言为Python - Requests后复制代码

吐血整理,接口自动化测试-接口依赖/上传接口处理(项目实例),接口自动化测试,软件测试,自动化测试,软件测试,自动化测试,python自动化测试,接口自动化测试,软件测试工程师,接口测试,接口自动化

将复制后的代码粘贴到Pycharm或者VS code的开发工具中运行即可

import os
import requests

from Commons.constants import UPLOAD_DIR

url = "https://接口地址/1.0/product/style-gallery"

payload = {}
files = [
    ('fileList[]', open(os.path.join(UPLOAD_DIR, 'stylegallery.png'), 'rb'))
]
headers = {}

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text.encode('utf8'))

至此就完成了文件上传接口的处理,后续进行测试或者接口自动化在此基础上进行二次开发即可

4、解决方法二
如果上面的方式并不能解决问题,那么再采用第二种方法,基本就不会有问题。

我们先来看看上传文件的请求内容:

吐血整理,接口自动化测试-接口依赖/上传接口处理(项目实例),接口自动化测试,软件测试,自动化测试,软件测试,自动化测试,python自动化测试,接口自动化测试,软件测试工程师,接口测试,接口自动化

接下来,给requests库的请求参数files的值套用以下模板:

files = {
            '${name}': ('${filename}', open( '${filepath}', 'rb'), '${Content-Type}')
        }

${name}:即name的值"fileList[0]"
${filename}:即filename的值"a.jpg"
${filepath}:filename的文件路径
${Content-Type}:即Content-Type的值"image/jpeg"
将模板对应的变量替换为实际值,得到:

files = {
            'fileList[0]': ('a.jpg', open(os.path.join(UPLOAD_DIR, 'a.jpg'), 'rb'), 'image/jpeg')
        }

注意:要确认文件路径是否正确,我这里使用了相对路径,然后将files传递给requests的对应方法上即可。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

吐血整理,接口自动化测试-接口依赖/上传接口处理(项目实例),接口自动化测试,软件测试,自动化测试,软件测试,自动化测试,python自动化测试,接口自动化测试,软件测试工程师,接口测试,接口自动化

二、接口自动化项目实战

吐血整理,接口自动化测试-接口依赖/上传接口处理(项目实例),接口自动化测试,软件测试,自动化测试,软件测试,自动化测试,python自动化测试,接口自动化测试,软件测试工程师,接口测试,接口自动化

三、Web自动化项目实战

吐血整理,接口自动化测试-接口依赖/上传接口处理(项目实例),接口自动化测试,软件测试,自动化测试,软件测试,自动化测试,python自动化测试,接口自动化测试,软件测试工程师,接口测试,接口自动化

四、App自动化项目实战

吐血整理,接口自动化测试-接口依赖/上传接口处理(项目实例),接口自动化测试,软件测试,自动化测试,软件测试,自动化测试,python自动化测试,接口自动化测试,软件测试工程师,接口测试,接口自动化

五、一线大厂简历

吐血整理,接口自动化测试-接口依赖/上传接口处理(项目实例),接口自动化测试,软件测试,自动化测试,软件测试,自动化测试,python自动化测试,接口自动化测试,软件测试工程师,接口测试,接口自动化

六、测试开发DevOps体系

吐血整理,接口自动化测试-接口依赖/上传接口处理(项目实例),接口自动化测试,软件测试,自动化测试,软件测试,自动化测试,python自动化测试,接口自动化测试,软件测试工程师,接口测试,接口自动化

七、常用自动化测试工具

吐血整理,接口自动化测试-接口依赖/上传接口处理(项目实例),接口自动化测试,软件测试,自动化测试,软件测试,自动化测试,python自动化测试,接口自动化测试,软件测试工程师,接口测试,接口自动化

八、JMeter性能测试

吐血整理,接口自动化测试-接口依赖/上传接口处理(项目实例),接口自动化测试,软件测试,自动化测试,软件测试,自动化测试,python自动化测试,接口自动化测试,软件测试工程师,接口测试,接口自动化

九、总结(尾部小惊喜)

不经历风雨,怎能见彩虹;不经历磨炼,怎能成巨匠。坚持梦想,追求卓越,奋斗的脚步永不停歇。在每个黎明前,都有辉煌等待。

奋斗如同磨刀石,磨砺出锋芒;努力如同阳光,照亮前行。不畏挑战,追求卓越,只有坚持不懈地执着奋斗,方能超越自我,绽放人生的辉煌,让梦想在奋斗的征途中闪耀不息!

奋斗的旅途上,不要畏惧失败,因为每一次跌倒都是站起来更坚强的机会;不要追求完美,因为成长正是在一次次的尝试中积累。只要心怀勇气与坚持,坚定地迈向梦想。文章来源地址https://www.toymoban.com/news/detail-651970.html

到了这里,关于吐血整理,接口自动化测试-接口依赖/上传接口处理(项目实例)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 接口自动化测试项目2.0,让你像Postman一样编写测试用例,支持多环境切换、多业务依赖、数据库断言等

    接口自动化测试项目2.0 本框架主要是基于 Python + unittest + ddt + HTMLTestRunner + log + excel + mysql + 企业微信通知 + Jenkins 实现的接口自动化框架。 项目参与者: 陈勇志 技术支持邮箱: 262667641@qq.com 个人微信: Testing_player 个人博客地址: https://home.cnblogs.com/u/Nephalem-262667641 微信公众号:测

    2024年02月16日
    浏览(65)
  • python接口自动化测试框架2.0,让你像Postman一样编写测试用例,支持多环境切换、多业务依赖、数据库断言等

    接口自动化测试项目2.0 软件架构 本框架主要是基于 Python + unittest + ddt + HTMLTestRunner + log + excel + mysql + 企业微信通知 + Jenkins 实现的接口自动化框架。 前言 公司突然要求你做自动化,但是没有代码基础不知道怎么做?或者有自动化基础,但是不知道如何系统性的做自动化,

    2024年02月13日
    浏览(59)
  • 如何搭建自动化测试框架?资深测试整理的PO模式,一套打通自动化...

    Po模型介绍 1、简介 在自动化中,Selenium自动化测试中有一个名字经常被提及PageObject(思想与面向对象的特征相同),通常PO模型可以大大提高测试用例的维护效率 2、为什么要用PO 基于selenium2开始ui自动化测试脚本的编写不是多么艰巨的任务。只需要定位到元素,执行对应元素的

    2024年02月13日
    浏览(50)
  • 接口自动化测试实践指导(下):接口自动化测试断言设置思路

    作者 : 石臻臻 , CSDN博客之星Top5 、 Kafka Contributor 、 nacos Contributor 、 华为云 MVP , 腾讯云TVP , 滴滴Kafka技术专家 、 KnowStreaming 。 KnowStreaming 是滴滴开源的Kafka运维管控平台, 有兴趣一起参与参与开发的同学,但是怕自己能力不够的同学,可以联系我,当你导师带你参与开源! 。 在

    2024年01月18日
    浏览(72)
  • 【接口自动化测试入门】从0到1落地接口自动化测试

    前段时间写了一系列自动化测试相关的文章,当然更多的是方法和解决问题的思路角度去阐述我的一些观点。这篇文章来聊聊新手如何从零到一落地实践接口自动化测试。 早些时候,软件研发交付流程大多遵循V型或W型的瀑布模式,这种模式下只有开发编码完成才会提测进入

    2024年02月04日
    浏览(48)
  • 自动化测试工具airtest之上传文件或图片(web自动化上传图片)

    web自动化测试图片上传的方法: 第一种为当具有input标签时,如: input type=\\\"file\\\" name=\\\"file\\\" multiple=\\\"multiple\\\" 这类可以通过selenium中的send_keys()上传 直接实现: driver.find_element_by_css_selector(\\\"[type=\\\'file\\\']\\\").send_keys(r\\\"文件地址\\\")  第二种为当不是input标签时,将不能使用上述方法我们可以

    2024年02月06日
    浏览(46)
  • 全网最细最全Appium自动化测试 iOS入门教程,App自动化测试教程,精细整理

    目录:导读 一、MAC电脑上 Appium 的安装流程 二、流程图 三、下载AppiumServerGui和AppiumInspector 四、开始测试       1、真机测试                 1.1 准备工作                 1.2 获取 开发包 .app 结尾                 1.3 WebDriverAgent使用                 1.4 配置 Appium Inspec

    2024年02月07日
    浏览(50)
  • 自动化测试(三):接口自动化pytest测试框架

    API:Application Programming Interface 接口自动化按照自动化的工具可分为 基于 接口测试工具 的接口自动化 eg1:Postman+Newman+git/Svn+Jenkins(基于Javascript语言)接口自动化 Postman :创建和发送 API 请求,并对响应进行断言和验证。 Newman : Postman 的命令行工具,它允许测试人员在没有界

    2024年02月10日
    浏览(60)
  • 接口自动化测试系列-接口测试

    利用postman完成接口测试:官网。 接口一般包含: url:请求地址,如:https://www.baidu.com/ method:请求方式,get,post,update,delete等 headers:请求头 body/params:请求体,post一般存在body中。get请求放在params中 get请求 post请求 辅助抓包工具操作指引 postman常规操作 1、怎样设置变量 如url、heade

    2024年02月10日
    浏览(56)
  • 基于 python 的接口自动化测试,让你轻松掌握接口自动化

    目录 目录 一、简介                ​编辑二、引言 三、环境准备 四、测试接口准备 接口信息 五、编写接口测试 六、优化 封装接口调用   本文从一个简单的登录接口测试入手,一步步调整优化接口调用姿势; 然后简单讨论了一下接口测试框架的要点; 最后介绍了一下

    2023年04月19日
    浏览(72)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包