zoukankan      html  css  js  c++  java
  • 性能测试基本理论 -1

    一、初步概念

    1、功能测试:测试产品的功能是否达到要求

    2、性能测试:测试产品的性能是否达到要求。(性能的要求高于功能的要求)

    市场招聘的需求主要有两方面:

       A、功能测试(手工、自动化)

       B、性能测试(自能通过工具)待遇高于功能自动化,要求比功能高,比如需要查找产品慢的原因:网络、服务器、中间件、数据库等层面问题

    二、性能测试的课程安排:

    1、性能测试的基本概念 ---- 性能测试概念(1天)

    对性能测试要求比较高的行业:通讯、樱花、金融、证券、保险、百度、谷歌等系统

    对性能要求比较低的:OA办公自动化

    2、性能测试的工具部分-- LoadRunner   (全球至少一半以上的性能,使用LoadRunner)

    1) LoadRunner的初级部分 -- 三大组件的简单运行

    a、脚本生成器:调代码、脚本的地方

    b、控制台:好比指挥部

    c、结果分析器:比如,每隔三秒钟出一个结果,分析海量的结果,还可以继续的分析。

    2) LoadRunner的高级部分 -- 三大组件逐个深入掌握。

    3)性能测试的高级部分 :性能测试工程中,遇到问题(瓶颈),如何查找、定性,进行性能调优。

    LR   HP官网下载   大概4G 免费    问题:用户数有限  单用户等

        多个用户,需要买Licence需要注册

    基本测试流程:

    1)创建/编辑脚本

    2)运行压力测试

    3)分析测试结果

    从奥运门票说起~

    官方新闻如下:10月30日,北京奥组委想境内公众启动第二阶段奥运会门票预售。然而,为让更多的公众实现奥运梦想

    的“先到先得,售完为止“的销售政策适得其反,公众纷纷抢在第一时间订票,致使票务官网压力激增,...... 导致系统瘫痪。

         从上午9点开始售票到中午12点,3个小时内,票务网站被浏览次数达到2000万此。这雨他们提供的100万次/小时流量

    相差甚远。

    信息提取:    压力激增 ----  瞬时压力:并发压力(性能测试)

                          系统瘫痪 ----  宕机(down机了)

                          3个小时内,网站的流量次数达到2000万次

                          他们提供的100次/小时     他们:奥组委

      甲方:奥组委                乙方:开发方                   第三方:测试团队

    报道~   

           从今天上午的情况看,公众购买门票的热情极其高涨。有些群众很早就来到中国银行排队等候;官方票务网站的浏览量在第一小时

    就达到800万次,每秒钟从网上提交的门票申请超过20万张;票务呼叫中心热线从9点到10点的呼入量超过了200万人次。

    信息提取:    浏览量第一小时 800万次           8000000/3600 = 2222次/秒

                          每秒钟从网上提交的门票申请超过20万张

    浏览量(PV,  Page View) :即页面访问量或点击量,用户每次刷新即被计算一次。

    客户端                    服务器

    北京 ---------------->    上海    网络延迟0.2     每秒钟差了0.2 *20万张 = 4万张 

    上海 ----------------->   上海

    项目经理经常安排次测试工程师进行下面的工作:

     ----  测试系统的最大并发用户数

     ---- 测试系统8小时的最大业务吞吐量

     ---- 测试系统的稳定性和健壮性

     ---- 测试系统在数据达到100万条记录时的性能

     ---- 测试系统的核心事物相应时间是否满足用户的需求


    三、性能测试的概念:

    1、性能测试:模拟真实的生产环境,以各种不同的压力(模拟大量用户)去测试被测系统,去”攻击“测试系统。同时

    记录下被测系统中各台服务器的各种重要资源情况,包括cpu、内存、磁盘和网络等资源。

    2、注意:性能测试之前要做好系统备份。

    3、性能测试时首先看性能需求,如果没有需求,这时要根据与客户交流、被测系统的相关资料、以及性能测试工程师的

    经验,去编写测试计划,进行测试。

    4、负载测试和压力测试的区别:

    (国内混用,国外有差别,笔试时需要注意)

    1)负载测试是在正常的范围内测试(也是逐步加压)

    2)压力测试可以在极端的范围内测试

    负载测试:是通过逐步增加系统负载,测试系统性能的变化,最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试。

    压力测试 :逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,并以此来获的系统能提供的最大服务级别的测试。

    举例:一座大桥,桥身上写最大载重车辆,不能超过60吨(负载测试)。但是在桥梁的内部资料里面规定最大载重车辆,不能超过70吨(压力测试)。

    5、性能测试的背景课程:

    1)数据库 (不夸张的说,60%-90%的性能问题和数据库有关)

    2)操作系统(Unix、Linux)

    3 )其他:网络协议、防火墙等知识.....

    6、影响系统性能的主要因素:

    硬件 - cpu、内存、硬盘、网卡及其他网络设备

    操作系统

    网络

    中间件、web服务器

    数据库服务器

    客户端

    编程语言、程序实现方法、算法

    6、被测系统:

    SUT(System Under Test)

    AUT(Application Under Test)

    EUT(Environment Under Test)

    就是WebServer 和DB Server 两部分的统称。

    进程和线程的区别:线程是由进程分出的,让更多的任务同时执行。

    每个虚拟用户就是一个线程,线程比较省资源

    四、LoadRunner的工作原理:(录制--回放)和QTP类似

    1、录制时,loadRunner记录下客户端和服务器二者之间的对话。

    2、回放时,LoadRunner模拟真实的客户端向服务器发起请求,并按照脚本去验证服务器的应答。

    说明:有时脚本录不下来,自己写脚本,发现测试通过了,但实际运行是服务器瘫了。

    原因:没有模拟真的是客户端相关,接收出现问题,导致失败。所以自己写脚本也要模拟真实的客户端。

    LoadRunner的三大组件:(三个火枪手)   QAload工具类似

    1)虚拟用户脚本生成器(Virtual User Generator) VUG

    功能:录制、编辑测试脚本

    2)压力调度控制台(Controller)

    功能:创建场景、运行场景、监控场景、收集测试数据

    (场景:就是一个大型的配置文件)

    3)压力结果分析器(Analysis)

    功能:把收集到的测试数据以图表的形式展示出来,生成测试报告。

    熟悉AUT:LR自带的一个B/S架构的系统

    HP LoadRunner -> Sample ->Web -> Start Web Server 先启动服务器

    HP LoadRunner ->Sample ->Web ->Hp WebTour打开应用

    五、关注AUT,进行脚本的录制

    Web tours 航班订票系统

    用户名:jojo

    密码:bean

    注意:(浏览器指定使用IE)

    1、使用LR之前,浏览器配置修改:Internet 选项 ->设置 ->选中“每次访问此页时检查”。

    原因:当脚本更新时,会及时查看到

    2、拷贝AUT的网址,准备测试(测试时关闭被测网址网页)

    http://127.0.0.1:1080/WebTours/

    功能:

    Flights      订票

    Itinerary    看到订票路线 订单

    Home        主界面

    Sign  Off    退出

    录制脚本:使用VUG

    HP LoadRunner ->Application ->HP Vurtual User Generator 打开

    案例:录制用户的登陆脚本

      点击New图标 -> New Virtual User ->默认协议 ->Create 开始录制->填入基本信息点击ok ->自动打开浏览器,开始录制

    填写基本信息:

    Application Type 选择软件的架构:B/S(Interner application) 或 C/S(Win32 application)

    Program to record 选择浏览器类型 -> 默认IE

    URL Address: 被测系统的网址  

    Working directory: LR工作路径  默认

    Record into Action: 录制脚本的位置  默认Action(vuser_init 初始化   Action   vuser_end 结束)

    关注小操作条(录制控制功能)

    --> 输入jojo    bean

    --> 开始事物   名称login (插入事物) -> OK

    --> Login 按钮    登陆

    --> 结束事物  login  -> OK

    --> 改为vuser_end模式,点击Sing Off 退出

    --> 关闭浏览器  -> 点击蓝色的Stop键结束录制

    注意:当LR 的脚本运行得出的result中全部为pass时,不一定证明脚本正确。因为lr只是在网络层面上验证了服务器收到了客户端发送的数据包

    并且返回,但是,返回的应答中数据是否正确(应答页面是否正确)没有验证。

  • 相关阅读:
    请求被中止: 未能创建 SSL/TLS 安全通道,设置 TLSv1.2和TLSv1.1版本 .基础链接已经关闭,发送时发生错误
    javascript中使用new与不使用实例化对象的区别
    Asp.net MVC 如何防止CSRF攻击
    httpModules 不起作用 modules 不起作用 血泪经验
    ASP.NET Core 中间件 中间件(Middleware)和过滤器(Filter)的区别
    ASP.NET Core开发-读取配置文件Configuration appsettings.json
    get、put、post、delete含义与区别
    postman发送json格式的post请求
    公钥,私钥和数字签名这样最好理解
    Java调用DLL有多种方式,常用的方式有JNative、JNA、JNI等。
  • 原文地址:https://www.cnblogs.com/demi-pansha/p/10076745.html
Copyright © 2011-2022 走看看