• web性能测试随笔


    我们产品的架构是:

    底层能力经过一些列的处理生成待入库文件→由dubbo调用入库组件dic通知easyes向elasticsearch插入数据。

    底层能力包含:语音转码、语音转写、转写文本添加标签(音量,时间戳等信息)

     不BB了。。。晚点再补充。

    先说需求:

    客户要求我们系统在特定条件下,实现数据预览查询、模型检索上线,报表预览查询、报表下载响应等场景作限制处理:

    1、不要报错

    2、接受数据范围限定

    3、接受任务排队机制

    4、系统别报错

    根据客户需求确定了几个使用场景,目前设定了时间:一年、半年、三个月;数据量大小都保证检出数在十万只百万级别。

    不BB了。。。晚点再补充。

    实现:

    jmeter前置信息:公共变量、模型名称、mysql/oracle数据库连接(需要对应的jar包)、HTTP Cookie管理器、察看结果数、聚合报告

    以其中一个场景(报表预览)为例:

    http请求:登录系统(loginIn),设置IP、端口、协议、方法、编码格式以及路径

    传用户名和密码参数,使用base64加密方式,所以提前导入,accountName传参值设置为${__base64Encode(${user_name},)}

    http请求:报表预览(getTableData),设置IP、端口、协议、方法、编码格式以及路径

    1、设置对应Form Data的参数值

    2、补充HTTP头信息:Request Headers,此时的Cookie可不添加

    3、可添加响应断言:响应文本包括“登陆成功”

    测试时发现jmeter的响应结果和页面的response不一致,接口虽然请求成功了,但是返回的结果缺少一部分字段。

    仔细检查才发现,报表预览getTableData接口在发送请求时在参数中并没有带TableId字段,所以直接调用此接口来测试是行不通的.

    然后刷新此页面后,再次点击预览,才发现在预览前有获取报表Id的接口getReportById,逐个按顺序添加至TestSuite,执行后返回结果正常。

    结果查看:

    从察看结果数中可以看到每个具体的请求的响应情况

    从聚合报告中查看到每个线程组的执行次数,最高最低响应时间、错误率等信息 

    总结:

    1、数据库或加密等信息需要提前准备好,向研发人员咨询支持的包

    2、若涉及到验证码等信息,可以加入后门,使用万能验证码,或临时关闭验证码校验

    3、对于session保持的请求,需要提前加入HTTP Cookie管理器

    4、若请求中没有带有关键参数,可查看前置相关请求或检查隐藏参数

  • 相关阅读:
    javascript 设计模式-----观察者模式
    javascript 设计模式-----工厂模式
    javascript 设计模式-----模块模式
    javascript 设计模式-----享元模式
    javascript 设计模式-----策略模式
    js操作Dom的一些方法简化
    Centos7下不删除python2.x的情况下安装python3.x
    解决:Linux SSH Secure Shell(ssh) 超时断开的解决方法
    shell变量常用方法
    apache目录别名
  • 原文地址:https://www.cnblogs.com/wjlv/p/10630079.html
Copyright © 2020-2023  润新知