干货!记一次接口调用失败后的排查思路

这篇具有很好参考价值的文章主要介绍了干货!记一次接口调用失败后的排查思路。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

特此声明:以下聊天记录为老师和学员的真实沟通记录,仅用于做典型技术问题分享,敏感信息已打码。VIP学员可以享受永久答疑服务。

2023年2月24日,早上刚到公司,有学员发来问题:有个http接口调不通

获取接口失败,程序员,自动化测试,IT,单元测试,自动化测试,程序人生,职场和发展,软件测试

问题截图如下:

获取接口失败,程序员,自动化测试,IT,单元测试,自动化测试,程序人生,职场和发展,软件测试

这个接口是需要签名加密的,现在接口返回code:1,签名验证失败

获取接口失败,程序员,自动化测试,IT,单元测试,自动化测试,程序人生,职场和发展,软件测试

具体的签名加密方法,是学员自己在beanshell中写的逻辑

获取接口失败,程序员,自动化测试,IT,单元测试,自动化测试,程序人生,职场和发展,软件测试

  • 分析一:首先怀疑sign字段,接口对于签名字段要求是小写的md5,学员传的是大写的,让学员改成小写试试,结果还是不成功

获取接口失败,程序员,自动化测试,IT,单元测试,自动化测试,程序人生,职场和发展,软件测试

  • 分析二:对于签名接口,也可能是时间戳不准确,但是学员贴出了获取时间戳的代码,看着也没问题

获取接口失败,程序员,自动化测试,IT,单元测试,自动化测试,程序人生,职场和发展,软件测试

  • 分析三:接口既然返回了“invaild sign data,有可能是在Jmeter中加密数据出现了错误,按照接口的签名规则,对请求中的参数使用第三方工具进行加密,然后跟Jmeter的加密结果进行对比,结果发现并不一致。说明确实是在Jmeter加密错误。

获取接口失败,程序员,自动化测试,IT,单元测试,自动化测试,程序人生,职场和发展,软件测试

学员想远程看看,目前问题基本已经定位,应该很快就能解决,暂时不需要远程了,接下来查看学员是如何加密的。

获取接口失败,程序员,自动化测试,IT,单元测试,自动化测试,程序人生,职场和发展,软件测试

清注意代码中标红的地方,此处调用了自己封装的md5函数,然后想把入参中的phoneNum+testfan字符串+mytime拼接,然后做md5加密。关键是在整个beanshel中,并没有定义phoneNum和mytime这两个Java变量,不过在代码中的这两个地方,分别定义了phoneNum和mytime两个Jmeter变量。

获取接口失败,程序员,自动化测试,IT,单元测试,自动化测试,程序人生,职场和发展,软件测试

众所周知,在beanshell中变量分成Jmeter变量和Java变量两种形式,Jmeter变量使用vars.get("变量名”的形式调用。Java变量就是直接定义变量,然后执行使用,如String phoneNum ="123”。

这个学员是把Jmeter变量当成Java变量来用了,所以beanshel就识别不到这两个变量,最后拼接后的数据就是错的,加密后自然也是错的了。

获取接口失败,程序员,自动化测试,IT,单元测试,自动化测试,程序人生,职场和发展,软件测试

学员自己改了下,把改后的代码发了出来,不过仍然有一些小问题,变量名没加双引号。

获取接口失败,程序员,自动化测试,IT,单元测试,自动化测试,程序人生,职场和发展,软件测试

加上双引号后,问题彻底得到解决,美好的一天,从帮助别人开始。

最后: 下方这份完整的软件测试视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取【保证100%免费】

获取接口失败,程序员,自动化测试,IT,单元测试,自动化测试,程序人生,职场和发展,软件测试

 这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

获取接口失败,程序员,自动化测试,IT,单元测试,自动化测试,程序人生,职场和发展,软件测试文章来源地址https://www.toymoban.com/news/detail-673156.html

到了这里,关于干货!记一次接口调用失败后的排查思路的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 记一次 RestTemplate 请求失败问题的排查 → RestTemplate 默认会对特殊字符进行转义

    今天中午,侄子在沙发上玩手机,他妹妹屁颠屁颠的跑到他面前 小侄女:哥哥,给我一块钱 侄子:叫妈给你 小侄女朝着侄子,毫不犹豫的叫到:妈! 侄子:不是,叫妈妈给你 小侄女继续朝他叫到:妈妈 侄子受不了,从兜里掏出一块钱说道:我就只有这一块钱了,拿去拿去

    2024年02月05日
    浏览(48)
  • 记一次JSF异步调用引起的接口可用率降低

    本文记录了由于JSF异步调用超时引起的接口可用率降低问题的排查过程,主要介绍了排查思路和JSF异步调用的流程,希望可以帮助大家了解JSF的异步调用原理以及提供一些问题排查思路。本文分析的JSF源码是基于JSF 1,7.5-HOTFIX-T6版本。 1.广告投放系统是典型的I/O密集型(I/O B

    2024年02月03日
    浏览(35)
  • 记一次排查:接口返回值写入excel后,从单元格copy出来的数据会带有多重引号的问题

    在项目里刚好有3个服务,同一个网关内层的3个服务,两个php的,一个golang的,为了提高负载以及进行分流,部分客户的接口调用会被网关自动分配到go服务。 恰好为了测试,我写了一个全量用户的生产、测试环境调用接口返回结果进行对比的脚本,于是发现了题中的问题:

    2024年02月05日
    浏览(41)
  • 记一次使用hutool的http工具调用外部接口同步人员信息

    首先是TreeNodeVo实体 构建目录树的工具类 最后根据返回的集合生成目录结构,主要设置treenodevo对象的id,pid,value,lable参数 controller类 前端vue+elementui,用级联选择器显示目录树 data中添加treeNodeVos对象 methods中添加后台调用方法,此方法可以在点击页面加载时调用,看自己,还有

    2024年02月05日
    浏览(47)
  • 记一次内存泄漏排查

    最近某项目的服务突然告警,cpu超85%,随后就是服务宕机。交付重启服务后恢复正常但是随后不久又开始告警,特别是白天,严重影响客户业务进行。 1、分析日志 查看日志的过程中发现存在内存溢出(OOM),思考要么存在内存泄漏要么业务上触发了某个接口存在大对象,结

    2023年04月16日
    浏览(48)
  • 记一次kafka消息积压的排查

    kafka消息积压报警,首先进行了自查,这个现象频频出现,之前每次都是先重新分配分区或者回溯(消息可丢弃防止大量积压消费跟不上)。 根据手册首先排查下消息拉取是否正常,看到了消息拉取线程是waiting状态,然后看到kafka这块逻辑是消费线程阻塞了拉取线程。 对比了

    2024年03月24日
    浏览(51)
  • 记一次线上BUG排查过程

    1. 线上遇到一个非常奇怪的bug,为一个用户分配业务线类型后,该用户登录时,提示502,但其它的用户登录完全是正常的 2. 问题现象 3. 排查思路 先去看线上日志,看是否有error,但日志里边这个接口200正常返回 本地debug,也复现一样问题,在分配角色类型超过22个总数时就报

    2024年02月09日
    浏览(50)
  • 记一次Nacos线程数飙升排查

    近日有个项目用到了Nacos做注册中心。运行一段时间发现Nacos服务的线程数达到了1k+。这肯定是不正常的。 环境: 镜像nacos-server 2.2.3 docker-compose编排部署 Nacos standalone模式 问题表现 docker stats nacos 发现该容器的线程数1k+ 用Fastthread分析stack文件表现如下 数量最多的线程线程栈如

    2024年02月09日
    浏览(45)
  • 记一次Native memory leak排查过程

    路由计算服务是路由系统的核心服务,负责运单路由计划的计算以及实操与计划的匹配。在运维过程中,发现在长期不重启的情况下,有TP99缓慢爬坡的现象。此外,在每周例行调度的试算过程中,能明显看到内存的上涨。以下截图为这两个异常情况的监控。 TP99爬坡 内存爬坡

    2024年02月11日
    浏览(45)
  • 记一次Apache HTTP Client问题排查

    通过日志查看,存在两种异常情况。 第一种:开始的时候HTTP请求会报超时异常。 762663363 [2023-07-21 06:04:25] [executor-64] ERROR - com.xxl.CucmTool - CucmTool|sendRisPortSoap error,url:https://xxxxxx/realtimeservice/services/RisPort org.apache.http.conn.HttpHostConnectException: Connect to xxx [/xxx] failed: 连接超时 第二种

    2024年02月12日
    浏览(61)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包