zoukankan      html  css  js  c++  java
  • 性能测试完整流程(二)

    4.数据库服务器配置(Oracle和LR相冲突,不要安装在一台电脑上,如果在一台电脑上,启动LR之前要把Oracle所有服务关闭)

     (1)在服务器上安装Oracle

     (2)设置登录名和密码

     (3)导出开发环境下的数据库

     (4)导入到测试环境下的数据库中

    注:服务器上已安装了Oracle,就直接进行(3)、(4)步骤

    补充常用软件:

     1. Navicat Premium 11/sqldeveloper可以访问、查看及操作数据库。

      2. Notepad++ 可以用它打开代码和简单操作,比文本清晰、实用。

    三、写用例和场景设计

       1. 性能用例与功能用例中的正常流程相同(只要项目的业务流程不变,性能测试用例一般不需要更改)

       2. 场景设计(先要制定一份基本标准)

    (1) 数据库中最少要有多少条数据(按照项目启用2年后的标准)

    (2) 并发Vusers数 (并发与在线按照1:10)

    (3)Vusers数加载的方式

    (4)运行时间

    (5)退出方式

    (6)事务平均响应时间

    (7)硬件配置

    Eg:苏州农业移动执法项目场景设计

    1.负载场景

        (1)并发数:50

        (2)每15s加载10个Vusers

        (3)运行时间:20m

        (4)退出方式:15s退出10个Vusers

        (5)登录的事务平均响应时间:3s

      2.综合场景

        (1)并发数:50

        (2)迭代时间:30至60s

        (3)思考时间:3s

        (4)无集合点

    注:在做负载测试之前,一定要先做基准测试,所以场景设计中可含有基准场景

     四、造数据

    1. 在做性能测试之前,数据库中的数量一定不能为空或过少,否则不符合实际的情况。2. 用Oracle语句

     Eg:

    (1)insert into T_USER (USER_ID,COMPANYID)

            select '116' ,'1'from dual

            union

            select '117','1' from dual

     

    (2)create or replace procedure proc_u_insert is

    i number;

    begin

    for i in 2..10 loop

      INSERT INTO "PDZF_TEST"."T_USER"

       ("USER_ID", "COMPANYID", "CREATETIME", "DEPARTMENT_ID",

           "LOGINNAME",  "STATE", "TABLEVERSION", "USER_NAME","USER_PASSWORD")

    VALUES

      (i,'1',

      TO_TIMESTAMP(' 2017-01-27 15:50:52:292158', 'YYYY-MM-DD HH24:MI:SS:FF6'),

      '1038839',

      i, '1', '50',i,

      'ADT751vaiC2nzzrs+77dJXMJnTdAieYJauk1tKYeLN/RKHAmIqMlNAtGZxjNQcsqQA==');

    end loop;

    commit;

    end ;

    exec proc_u_insert();

    以上四步全部配置完成,就可以进行第五步操作

    五、录制脚本、加强脚本

       1. 项目测试,建议用录制方法(具体操作,可参考LR basic)

        (1)项目中涉及的点多,采用手写会花费过长的时间,且不一定写全

        (2)在录制好脚本之后,根据项目需要可加入检查点、集合点、参数池、IP欺骗技术等

       2.接口采用手写

        (1)做接口测试,首先要知道URL和API ;

        (2)接口中请求分两种:POST和GET(从安全角度来说,建议用POST)

        (3)接口还会涉及到CAS单点登录问题,SSO一般有两种机制cookie和session;

        (4)如果涉及到SSO,要先获取到Token值,可以用捕获工具fiddler

        Eg:

    Action(){
    web_custom_request("login",
    "URL=http://172.25.220.171:8099/szsxzz/desktop/*.jsonRequest", 
    "Method=POST", 
    "Resource=0", 
    "RecContentType=application/json", 
    "Referer=http://172.25.220.171:8099/szsxzz/desktop/myDesktop.html?name=320508PDY660587&pwd=123&type=3", 
    "EncType=application/json", 
    "Mode=HTML",
    RAW_BODY_START, //请求BODY开始的标识符
    "{"deep":false,"forConfig":true,"serviceId":"logon","uid":"320508PDY660587","psw":"123","validcode":""}",
    102,   //上面一行BODY内容的长度
    RAW_BODY_END,
    LAST);
    return 0;

    }

    注:录制脚本之前,一定要关闭不必要的软件和服务(eg:防火墙、360、QQ等)

    六、设置场景

    完全根据之前做的场景设计进行设置,再运行即可

      

    七、结果分析

    1. 当场景运行完之后,首先看整体报告

    2. 如果问题不大,直接看Analysis

    3.如果Analysis中找不出问题,要进行细分(打开各细分方法,可参看性能结果分析)

     (1)首先,打开Web网页诊断,查看具体问题

        1)从下图的web网页诊断,可看出URL为“×××829”占用的时间最久

        2)打开URL为“×××829”,发现主要是“first buffer” 的占用

    (2)其次,打开first buffer细分图,发现主要是server time

     (3)然后,打开windows resources 图

        1)查看应用服务器资源占用情况(192.168.11.245)

         从下图:很明显发现应用服务器有问题

          原因:

    a.%processor time 一直持续在98%以上

    b.Process Queue Length >4

    由a和b可知:处理器瓶颈

         2)查看数据库服务器资源占用情况(192.168.25.110)

          从下图可知:数据库服务器没有瓶颈

    (4)根据以上分析,可提出的优化建议

    1)应用服务器处理器有瓶颈,需更换高配置

    2)查看服务器和中间件的参数配置

    3)优化URL(×××829)页面的代码

    4)优化缓存

    (5)如果优化完,还有问题,请优化数据库系统

    1)查询语句(不建议用select * 整表查询)

    2)可以增加索引(用不到索引的地方,不要加,再好的东西,用的多也不好)

    3)不要用复杂的表联接

    4)对于数据量大的数据表,最好进行分表

    注:查找瓶颈时按以下顺序,由易到难。
     服务器硬件瓶颈 ->网络瓶颈(对内网,可以不考虑)->服务器操作系统瓶颈(参数配置)->中间件瓶颈(参数配置,数据库,web服务器等)->应用瓶颈(SQL语句、数据库设计、业务逻辑、算法等)

     

    八、写报告

      主要是对测试过程和结果汇总,测试过程是针对过程改进,测试流程中存在的不足;结果汇总是对软件的评价

    测试报告构成:

    1. 引言

    包括编写目的、项目背景

    2.测试环境

    软硬件环境、服务器、客户端

       3.测试时间

       4.测试用例设计

            测试用例简单描述

       5.结果分析和建议

  • 相关阅读:
    UE4 径向模糊radiu blur
    UE4 小笔记
    UE4 Fade out Mesh
    测试一下运行代码
    javascript——限制范围的拖拽
    javascript——拖拽函数封装
    一个等高布局的小实例
    javascript——拖拽原理小实例
    javascript——自定义右键菜单
    javascript——事件默认行为
  • 原文地址:https://www.cnblogs.com/gagu/p/9212702.html
Copyright © 2011-2022 走看看