关于框架学习:接口测试框架接入性能测试实践分享

8次阅读

共计 2180 个字符,预计需要花费 6 分钟才能阅读完成。

  1. 前言

======

现如今接口测试在软件品质行业中的位置,曾经越来越重要,绝对于下层的 UI 自动化测试和上层的单元测试,接口测试的“低”投入、“高”回报,也成了绝大多数品质保障实际的首选。

在发展接口测试时,往往很多时候都只在关注接口的功能性品质,而对于非功能性的品质保障验证,比方性能、平安,在理论工程利用或者设计用例时关注度显著有余(甚至很多压根没有这方面的测试实际)。

明天就以 Python 系下 requests 库(罕用于接口测试)和 Robot FrameWork 框架为例,和大家聊聊在接口测试过程中,和性能需要等同重要的性能测试查看项。

  1. 接口测试须要思考的性能查看项

==================

在接口测试过程中,除了要思考产品需要的失常、异样、数据正确性等显性功能需要品质外,还有很多隐性需要品质须要关注,以性能测试为例,常见须要关注的查看项包含,但不限于:

  • 1、单用户登录的响应工夫是否小于 3 秒;
  • 2、单用户登录时,后盾申请数量是否过多;
  • 3、高并发场景下用户登录的响应工夫是否小于 5 秒;
  • 4、高并发场景下服务端的监控指标是否合乎预期;
  • 5、高集合点并发场景下,是否存在资源死锁和不合理的资源期待;
  • 6、长时间大量用户间断登录和登出,服务器端是否存在内存透露。

本文重点以接口响应工夫为例,介绍如何在 requests 库和 Robot FrameWork 框架纳入性能测试项,其它性能查看项思路根本都是相通的。

  1. requests 库接口测试校验响应工夫

=======================

通常在联合 requests 库发展接口测试时,发送申请后,接口的响应工夫,也是咱们须要关注的一个重点,如果响应工夫太长,从产品业务或者用户角度也是不可承受的。那如何进行申请响应工夫校验,也成为了接口测试人员须要把握的一项小技能。

针对 requests 库校验申请响应工夫,给大家提供两种实现思路:

一、借助申请响应超时机制

具体实现:

#-*- coding:utf-8 -*-
import requests
from requests import exceptions

try:
    req = requests.post(url=url, data=data, headers=headers, verify=False, timeout=3)       
   print r.json()
except exceptions.Timeout as e:   
    print("抛出异样") 

在上述实现中,通过减少 timeout 参数,设置申请响应超时机制,当 timeout=3(可自在定义),当申请响应工夫超过 3 秒,则会抛出超时异样。

其中,额定补充的知识点:超时(默认单位:s),有两种设置超时办法:

  • timeout=5:设置 5s 的超时工夫
  • timeout=(5,10):设置区间工夫的期待

当申请呈现超时时,则会抛出此异样:requests.exceptions.ConnectTimeout: HTTPConnectionPool

2、获取响应工夫办法:req.elapsed.total_seconds()

二、借助 requests 接口响应返回值 elapsed

具体实现:

#-*- coding:utf-8 -*-
import requests

r = requests.post(url, data=data, headers=headers)
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_time>3 

上述代码实现中,通过获取申请返回的响应值来获取接口响应工夫,常见的几个获取响应工夫参数为:

  • elapsed.total_seconds:获取响应工夫,单位 s (举荐)
  • elapsed. microseconds:获取响应工夫,大于 1s 的时候,只截取了前面的小数局部
  • elapsed.seconds:单位 s,响应工夫小于 1s 时,为 0
  1. Robot Framework 框架校验响应工夫

===========================

在上述咱们介绍了 requests 库在发展接口测试过程,校验申请响应工夫的实现思路。而通过 Robot Framework 框架发展接口测试,次要会依赖 RequestsLibray 库,而因而实现思路也是一样的。

具体实现,可参考下述示例:

上述校验申请响应工夫,外围就两句代码:

${elapsed_seconds}=    set variable    ${resp.elapsed.total_seconds()}
should be true    ${elapsed_seconds}<3 

补充知识点 :响应体 ${resp} 是一个类对象,源码可在 requests/models/Response 查看,能够查看找出该类的所有属性,第 6 行打印后果:

  1. 小结

======

作为测试工程师,你的指标是要保证系统在各种利用场景下的性能是合乎设计要求的,所以你须要思考的测试用例就须要更多、更全面。本文,通过接口测试如何交融接口性能查看项,给大家提供一点思路,心愿对你有所帮忙或启发。

正文完
 0