• 0
  • 0
分享
  • Jmeter性能测试实战——软件测试圈
  • TIMI 2022-01-10 15:06:13 字数 1624 阅读 799 收藏 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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   新浪科技讯据报道,谷歌(105.22,-3.58,-3.29%)母公司Alphabet今日要求法庭驳回多家广告商最新提交的修改后的集体诉讼。  2021年,多家广告商对谷歌提起集体诉讼,指控谷歌滥用其在数字广告上的主导地位。后来,加州圣荷地方法院法官贝斯·拉布森·弗里曼(BethLabsonFreeman)驳回了该诉讼。  但同时,弗里曼也保留了原告再次提起诉讼的机会。弗里曼称,原告需要厘清他们认为谷歌独占了哪个市场;还需要进一步解释,为什么说谷歌拒绝支持竞争对手的广告系统是反竞争行为,因反垄断法并未规定垄断方协助竞争对手生存。  对于广告商提交的修改后的集体诉讼,Alphabet称,提起...
            0 0 868
            分享
          • 最近想研究下手机端是如何进行接口测试的,那就得先把app和微信小程序的一些测试的重点会了解,我没有做过关于微信小程序和手机app的测试,有不对的希望补充和提建议,下面是我在网上找到的一些知识的总结:功能测试:功能测试和web的测试逻辑一样,主要是理解项目的需求设计等,查看功能模块、业务流程、同一功能不同入口时有效性检查、页面交互性检查、输入输出等逻辑进行测试;权限:app是否可以访问手机通讯录、相册、相机等权限;小程序是否有微信授权,未授权/授权登录程序,同一微信号不同手机登录查看数据显示情况;兼容性测试:不同手机操作系统检验、不同微信版本(测试当前微信版本发布的项目和升级版微信后测项目)、分...
            0 0 1031
            分享
          • 读者提问:测试开发工程师到底是测试,还是开发 ?阿常回答:既是测试,也是开发。首先,测试开发是测试工程师,他们是服务于业务测试同学的,目标是解决业务测试工程师的具体问题。这就要求他们必须具备测试思维。其次,测试开发也是开发工程师,他们会针对业务测试同学的具体诉求设计研发对应的小工具,或者研发定制化的一套测试平台。这就要求他们同时具备编程能力。阿常碎碎念:前一阵子阿常团队招测试开发时,就有纯开发经历的同学来面试,一般看到这样的简历阿常会直接 pass 不考虑。当然不排除有纯开发经验的同学,同时也具备良好的测试思维,但这只占少数部分。通常都是有真正测试实践经历的测试同学,才可能具备更好的...
            0 0 1249
            分享
          •   等价类划分法  等价类划分法即把所有可能输入的数据划分为若干个区域,然后从每个区域中取少数有代表性的数据进行测试。等价的意思就是说程序对它们的处理方式都是一样的。  有效等价类  有效:是因为它们都是符合需求文档中定义的数据;  等价:是因为它们都是同一类型的数据。  无效等价类  无效:是因为它们都是不符合需求文档中定义的数据;  等价:是因为它们都是同一类型的数据。  等价类划分(测试点):  等价类划分法设计测试用例  边界值分析法  在功能测试中,边界值分析法也是测试人员常用的一个方法,它通常被视为对等价类划分法的一种补充。边界值分析法是取稍高于或稍低于边界的一些数据进行测试。为什...
            0 0 919
            分享
          • 无论是什么类型的系统,都可以从测试类型角度来考虑测试。1.系统测试回顾测试阶段:1、单元测试,测试函数/方法,需要知道函数内部的逻辑设计,一般采用的是白盒测试方法。2、集成测试,测试接口,需要知道接口的规格,一般采用的是灰盒测试方法。3、系统测试,测试整个软件,需要知道软件的整体特性,一般采用的是黑盒测试方法。4、验收测试,测试整个软件软件质量模型:1、功能性,对应功能测试2、效率,对应性能测试3、易用性,对应易用性测试4、可靠性,对应可靠性测试5、可移植性,对应兼容性测试针对系统可以有不同的测试类型,一般可以粗分为功能测试和非功能测试。将来工作中主要接触的功能测试、性能测试、兼容性测试等。针...
            0 1 2210
            分享
      • 51testing软件测试圈微信