2026/6/9 20:52:03
网站建设
项目流程
创意网站模板下载,国产服务器前三强,点图片跳到网站怎么做,dw属于什么的网页制作工具1. 前言
现如今接口测试在软件质量行业中的地位#xff0c;已经越来越重要#xff0c;相对于上层的UI自动化测试和下层的单元测试#xff0c;接口测试的“低”投入、“高”回报#xff0c;也成了绝大多数质量保障实践的首选。
在开展接口测试时#xff0c;往往很多时候都…1. 前言现如今接口测试在软件质量行业中的地位已经越来越重要相对于上层的UI自动化测试和下层的单元测试接口测试的“低”投入、“高”回报也成了绝大多数质量保障实践的首选。在开展接口测试时往往很多时候都只在关注接口的功能性质量而对于非功能性的质量保障验证比如性能、安全在实际工程应用或者设计用例时关注度明显不足甚至很多压根没有这方面的测试实践。今天就以Python系下requests库常用于接口测试和Robot FrameWork框架为例和大家聊聊在接口测试过程中和功能需求同等重要的性能测试检查项。2. 接口测试需要考虑的性能检查项在接口测试过程中除了要考虑产品需求的正常、异常、数据正确性等显性功能需求质量外还有很多隐性需求质量需要关注以性能测试为例常见需要关注的检查项包括但不限于1、单用户登录的响应时间是否小于 3 秒2、单用户登录时后台请求数量是否过多3、高并发场景下用户登录的响应时间是否小于 5 秒4、高并发场景下服务端的监控指标是否符合预期5、高集合点并发场景下是否存在资源死锁和不合理的资源等待6、长时间大量用户连续登录和登出服务器端是否存在内存泄漏。本文重点以接口响应时间为例介绍如何在requests库和Robot FrameWork框架纳入性能测试项其它性能检查项思路基本都是相通的。3. requests库接口测试校验响应时间通常在结合requests库开展接口测试时发送请求后接口的响应时间也是我们需要关注的一个重点如果响应时间太长从产品业务或者用户角度也是不可接受的。那如何进行请求响应时间校验也成为了接口测试人员需要掌握的一项小技能。针对requests库校验请求响应时间给大家提供两种实现思路一、借助请求响应超时机制具体实现#-*- coding:utf-8 -*-import requestsfrom requests import exceptionstry:req requests.post(urlurl, datadata, headersheaders, verifyFalse, timeout3)print r.json()except exceptions.Timeout as e:print(抛出异常)在上述实现中通过增加timeout参数设置请求响应超时机制当timeout3可自由定义当请求响应时间超过3秒则会抛出超时异常。其中额外补充的知识点超时默认单位s有两种设置超时方法timeout5设置5s的超时时间timeout(5,10)设置区间时间的等待当请求出现超时时则会抛出此异常requests.exceptions.ConnectTimeout: HTTPConnectionPool2、获取响应时间方法req.elapsed.total_seconds()二、借助requests接口响应返回值elapsed具体实现#-*- coding:utf-8 -*-import requestsr requests.post(url, datadata, headersheaders)print(r.status_code)print(r.elapsed)print(r.elapsed.total_seconds())print(r.elapsed.microseconds)print(r.elapsed.seconds)elapsed_time r.elapsed.total_seconds() #获取实际的响应时间assert elapsed_time3上述代码实现中通过获取请求返回的响应值来获取接口响应时间常见的几个获取响应时间参数为elapsed.total_seconds获取响应时间单位s(推荐)elapsed. microseconds获取响应时间大于1s的时候只截取了后面的小数部分elapsed.seconds单位s响应时间小于1s时为04. Robot Framework框架校验响应时间在上述我们介绍了requests库在开展接口测试过程校验请求响应时间的实现思路。而通过Robot Framework框架开展接口测试主要会依赖RequestsLibray库而因此实现思路也是一样的。具体实现可参考下述示例img上述校验请求响应时间核心就两句代码${elapsed_seconds} set variable ${resp.elapsed.total_seconds()}should be true ${elapsed_seconds}3补充知识点响应体${resp}是一个类对象源码可在requests/models/Response查看可以查看找出该类的所有属性第6行打印结果5. 小结作为测试工程师你的目标是要保证系统在各种应用场景下的功能是符合设计要求的所以你需要考虑的测试用例就需要更多、更全面。本文通过接口测试如何融合接口性能检查项给大家提供一点思路希望对你有所帮助或启发。感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取