• 0
  • 0
分享
  • Jmeter性能测试实战——软件测试圈
  • TIMI 2022-01-10 15:06:13 字数 1624 阅读 908 收藏 0

获取到一个上传项目信息的接口

1)需求请求签名

2)调用同一接口间隔时间不能小于1秒

测试步骤

1)模拟实际用户,使用阶梯型线程加压进行模拟,这里使用的是阶梯式加压 jp@gc-Stepping Thread Group (deprecated)

1.jpg

2)添加用户参数组件

2.jpg

3)添加JSR223取样器获取接口需要的请求签名信息

JSR223取样器允许执行JSR223脚本代码用于创建/更新所需的某些变量,相比于BeanShell 取样器,JSR223取样器+groovy脚本具有可大大提高性能的功能(编译),同时支持更多的脚本语言

3.jpg

下面是获取请求签名代码

import hashlib
import time
rand = 'xxxx'
# 获取时间戳并精确到毫秒
now = time.time()
timestamp = str(int(round(now * 1000)))
# timestamp = '1614231674297'
vars.put("timestamp",timestamp)
authid_enterprise = '28865bc11eb88xxecfaxxx'
secret_enterprise = '288d1a5bc11eb88xxecfxxxb8'
data = "{\"name\":\"中央公园项目1标段\",\"short_name\":\"中央公园\",\"project_code\":\"C0000001".decode('utf-8')+timestamp.decode('utf-8')+"\",\"type\":\"01\",\"state\":\"003\",\"start_date\":\"2020-12-01\",\"end_date\":\"2022-12-31\",\"contract_amount\":100000.1,\"province\":\"110000\",\"city\":\"110000\",\"town\":\"110108\",\"address\":\"北京市海淀区三里河路15号\"}".decode('utf-8')
# 拼接字符串
result = 'rand='+rand+'&timestamp='+timestamp+'&auth_id='+authid_enterprise+'&secret='+secret_enterprise+'&data='+data
# 生成signature
signature = hashlib.sha1(result.encode('utf-8')).hexdigest()
#放入signatrue变量中
vars.put("signature",signature)
log.info("---------------------"+timestamp+"------------------------")

4)添加http请求

4.jpg

5)添加http信息头管理器,用于设置请求头信息

5.jpg

6)添加断言,验证接口请求是正确

6.jpg

7)添加同步定时器

其作用是:阻塞线程,直到指定的线程数量到达后,再一起释放,可以瞬间产生很大的压力(人多力量大- -哈哈!)

(1)Number of Simulated Users to Group by:模拟用户的数量,即指定同时释放的线程数数量

(2)Timeout in milliseconds:超时时间,即超时多少毫秒后同时释放指定的线程数

7.jpg

测试结果

1)聚合报告,这里的事务数用于使用了其他采样器,可参考性不强,可关注,是否有失败的请求,观察用户的响应时间等(最低,最高,95%,99%)

8.jpg

2)观察线程数

9.jpg

3)观察事务数,一般是观察最高、最低、大概率在哪个区间

10.jpg

4)观察响应时间,最高、最低、大概率区间

11.jpg

作者:是美好啊

原文链接:https://blog.csdn.net/qq_41596734/article/details/115378649

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 一、代码覆盖率 通常我们在做单元测试的时候会接触到代码覆盖率的概念,通过在单元测试的过程中收集代码覆盖率去判断测试用例是否充分,去更精准的定位问题。而对于功能测试或者接口测试比较少的去关注覆盖率数据,功能测试时覆盖率的收集也是比较困难的。然后对于功能测试而言进行代码覆盖率的收集有利于测试工程师去判断哪些分支没有被覆盖,判断是否是设计用例的时候没有做到覆盖,又或者是由于存在bug使得无法覆盖到,从而更精准的去定位bug的位置,去分析问题,节省时间。 二、工具简介 对于java的代码覆盖率的收集,比较常用的工具有emma、jacoco,它们都是免费的代码覆盖率工具。emma目前已经不维护,Ec...
            4 3 2366
            分享
          • Linux系统的稳定、安全、免费、开源等特点,使其在软件行业中应用越来越广,越来越普遍。测试岗位的招聘要求中,也都会涉及要熟悉Linux命令,Linux也逐渐成为测试人员必不获取的一项技能。工作中用到的Linux远程管理工具有Xshell/PuTTY/SecureCRT等,使用最多的还是Xshell。基于Xshell,整理测试工作中常用的Linux命令,由于命令区分大小写,使用过程中一定注意。一、系统相关shutdown -h now或init 0:关闭系统shutdow -r now或reboot:重启系统logout:注销Ctrl+C:退出命令行date:显示系统日期ifconfig:查看...
            2 5 4596
            分享
          •   在谈到软件测试工程师时,许多人还是会想到那些重复使用软件并试图在频繁的操作中发现 BUG的人,也就是人们常说的按照测试规范和测试案例来测试软件,检查软件是否有错误,判断软件是否稳定。但这是一个很老派和错误的观点。  由于以上观念,导致软测试工程师在最初的十年中基本上处于较低的地位,认为测试工程师从事的是技术含量不高、随时可以取代的重复工作。  据调查,国内的软件测试,在互联网刚刚兴起的十多年间被冷眼对待,特别是那些没有配备软件测试人员的中小型软件企业,测试工作往往由开发岗位兼任,通常只进行简单的白盒测试,这种做法在一定程度上等于让用户也充当了测试的角色,造成的后果往往是用户发现一堆问题后进...
            0 0 1376
            分享
          •   日前,沃尔沃首款纯电MPV车型沃尔沃EM90的谍照在网上曝光。据悉,这款特供车将采用和极氪009相同的SEA浩瀚架构,车身长度可能超过5.2米。计划于今年第三季度亮相并投产上市,成为沃尔沃90车系的第四款车型。  根据谍照可以看出,新车外观与极氪009有诸多相似之处,如雷神之锤轮廓的LED大灯组和镀铬饰条点缀的封闭式进气格栅。车身侧面包括悬浮式车顶造型、双层镂空的A柱和C柱的转折点造型以及充电口位置等细节与极氪009几乎一致。然而,由于伪装措施严实,尾部设计等细节尚不清晰可见。  动力方面,沃尔沃EM90将采用纯电驱动系统,可能与EX90采用相同的动力配置:低功率版电机最大功率407马力,...
            0 0 710
            分享
          •   想必金字塔测试原理大家已经很熟悉了,近年来的测试驱动开放在各个公司开始盛行,测试代码先写的倡议被反复提及。  鉴于此,许多中大型软件公司对单元测试的要求也逐渐提高。那么,编写单元测试有哪些小技巧可以借鉴和学习的呢?  测试代码文件路径与开发代码文件路径“相同”  这里的“相同”并不是完全意义的一摸一样,测试代码和开发代码处于同一目录,而是指的测试代码文件路径你与开发代码文件路径“大体相同”。  如下图1、2所示,开发代码路径和测试代码路径都包括/java/ru/yandex/clickhouse/。图1 开发代码路径图2 测试代码路径  测试代码文件名清晰  清晰的测试代码文件名可以帮助阅...
            3 3 1524
            分享
      • 51testing软件测试圈微信