坚持到底!测试到底!

发布新日志

  • loadrunner中出现报告中没有数据解决方式

    2013-09-24 16:14:20

    51testing上的日志太难用了,刚刚写完的日志,提交后提示标题太长,返回以后原来写的内容全没了,nnd害的我又重新写一遍

     

     

    最近在用loadrunner做性能测试,controller在我本机,负载机为一个unix环境的测试机,controller中的报告设置为运行结束后自动打开,结果也是自动收集。在我施压的过程中短时间报告都能出来,一切正常,但是如果加压1H以后,每次自动打开的报告都会有一下提示。导致无法得到想要的数据。

     

    此问题困扰了我两天时间,这两天吃不好睡不下,不断在度娘,骨骼去找原因,去群里问。一直都没有得到解决。

     

    一次偶然的机会,让我发现如果上时间施压loadrunner产生的数据就会很多,controller运行以后都会有一个collate result,这个运行会很慢,如果直接关掉,那么再次打开报告也会有上面的提示,如果等他自动运行完,然后再打开报告,数据就会生成得到想要的数据。

     

    O(_)O哈哈~,看来实际这不是问题,只是我在做得过程中想省事(最好不要自动打开报告,在数据量大的时候数据都还没收集完直接打开报告肯定没有数据啦),才有了此问题,在此做下记录。

     

    此页面在工作的时候最好不要直接关闭。


  • 在loadrunner中执行存储过程

    2012-12-18 15:26:34

    由于我们的系统必须进行上传源文件以后才能进行后续的页面操作,另外上传文件又是silverlightwcf来做的,loadrunner一直无法进行参数话上传,后天经过一开发人员的指导该过程进行后台操作。(写了个存储过程)

     Loadrunner新建完项目以后把项目的id保存起来,调用执行存储过程同时将id传给存储过程。

    再网上找了好多,确实有用loadrunner来执行存储过程的,在网友的基础上进行了修改,如下:(代码已经过测试)

     

    1、  新建存储过程

    USE [DBPlatFormFor]

    GO

    /****** 对象:  StoredProcedure [dbo].[QA_LR]    脚本日期: 12/18/2012 15:15:08 ******/

    SET ANSI_NULLS ON

    GO

    SET QUOTED_IDENTIFIER ON

    GO

    Create Procedure [dbo].[QA_LR]

    @name     varchar(30)

    as

    begin

     update MailMsg set username ='abc' where UserName = @name

    end

     

    2、  Loadrunner调用存储过程:

    char name[100]="services";

    Action()

    {

    char command[1024];

    sprintf(command, "Sqlcmd -U tbms -P p@ssw0rd -S Jolin -dDBPlatFormForUI -Q \"exec QA_LR %s \" ",lr_eval_string(name));

    lr_output_message(command);

    lr_output_message(name);

    system(command);

     

    return 0;

    }

    备注:

    -U后面是数据库的用户名,-P后面是密码,-S是数据库的服务器名,-d(小写)后面没有空格直接跟数据库名,-Q是存储过程名称,lr_eval_string(name)是传的参数。

  • 监控windows的问题及解决方案

    2010-12-27 13:26:26

  • 将自已写的一部分测试代码贴出来,希望大家多提意见

    2009-11-29 12:06:28

    公司不能上外网,只有周末回家来这里逛逛,好好整理一下自已的BLOG.
    C/S结构,新增一条记录,验证保存后记录的内容是否正确。代码如下:
    用WR来进行自动化测试

    #数据库连接
    rc=db_connect ("stationnet","DSN=wr_test1;UID=sa;PWD=;APP=WinRunner;WSID=local;DATABASE=stationnet",30);

    #判断数据库连接是否成功
    if (rc !=E_OK)
    pause("cannot fail");

    #验证处方'000019857'在数据库中是否存在
    mm="'000019857'";
    a="select get_amount,unit_price,multiple FROM G_RECIPE  where recipe_no=" & mm;
    db_execute_query("stationnet",a,record_num);
    #pause ("a is  " & a);
    total=0;
    for (i=0;i<record_num;i++)
    {
     value=1;
      for (j=0;j<3;j++)
      {
        val[i,j]=db_get_field_value ("stationnet","#" & i,"#" &j );
       
        value=value*val[i,j]; 
       }
     
     tl_step("station",0,"第"& i & "的金额:" & value);
     total=total + value;
    }
    tl_step("stationnet",0,"总金额为:"&total);

    dw_xm="select item_name,unit_price,amount,total from g_outp_bill_item,g_price_list where  g_outp_bill_item.item_code=g_price_list.item_code and cf_code=" & mm;
    db_execute_query("stationnet",dw_xm,record_num);
    pause ("dw_xm is  " & dw_xm);
    xm_total=0;
    for(i=0;i<record_num;i++)
    {
      for (j=0;j<4;j++)
      {
        xm_item[i,j]=db_get_field_value("stationnet","#" &i,"#" &j);
       
      }
      k=0;
     #pause("xm_item[" &i"] is 项目名称" &xm_item[i,k] &"单价" &xm_item[i,k+1]&"数量" &xm_item[i,k+2]&"金额" &xm_item[i,k+1]);
     tl_step("stationnet",0,"xm_item[" &i"] is 项目名称" &xm_item[i,k] &"单价" &xm_item[i,k+1]&"数量" &xm_item[i,k+2]&"金额" &xm_item[i,k+1]);
     xm_total=xm_total+xm_item[i,k+1];
    }
    #pause("xm_total is :"&xm_total);
    tl_step("stationnet",0,"xm_total is :"&xm_total);
    db_disconnect("stationnet"); 
    db_get_headers("stationnet",field_nu,headers);
    tl_step("station",0,"total" & total);

     

    本文来自我的CSDN博客,http://blog.csdn.net/lwenz/archive/2006/11/03/1365398.aspx

  • 如何卸载Linux系统

    2009-11-29 11:51:40

     

        前段时间装了个Windows XP+ubuntu8.1双系统,由于最近硬盘空间不够用,所以决定弄个虚拟机来进行学习,而把原先的ubuntu先卸载了。

        如果单单把ubuntu所在的分区格式化,这样将导致Windows也不能正常的启动,参考了一下谷歌的建议,方法如下:

        1.在Windows下,下载MbrFix,并解压;打开“命令提示符”,cd到MbrFix目录里,输入如下命令MbrFix /drive 0 fixmbr,在对话提示中输入y后确定。如无意外,这时你重启后可以看到不再有多系统的启动选择,而是直接进入了Windows。
        2.删除ubuntu所在分区。这里的方法很多:使用Windows下的分区软件、使用sudo gparted、使用ubuntu安装盘、使用DOS引导盘等等。自已手上什么都没有,而那个什么sudo gparted又不熟而且不想下载分区软件,于是我只用了XP自带的磁盘管理进行了格式化,步聚如下:右击我的电脑--管理-磁盘管理-选中两个未知的分区点右键进行删除逻辑磁盘--再重新格式化--OK。

    呵呵,简单吧!

  • 转载:qtp自定义保留对像二

    2009-01-04 16:20:07

    注册自定义QTP保留对象

      将自己的所自定义的保留对象注册到注册表中,这个并不是QTP所包含的保留对象,而是自己设计的保留对象,用VB写的类和函数是可注册的COM对象。操作如下:

      打开注册表,定位注册项:


    图3.1

      添加一个名为“MyObject”的注册项;

      添加两个“REG_SZ”类型的注册项,分别为:

      ProgID:准备创建的COM 对象的ID,在这里就是Dictionary 对象所对应的COM 对 象名“PrjName.ClassName”。这个就是前面提到的VB中的工程名、类名。 UIName:QTP指向保留对象的名字,在这里输入“MyObject”

      添加一个类型为“REG_DWORD”的注册项;

      VisibleMode:设置DWORD 值为2,用于控制自动完成(auto-complete)和代码智能感知(intelligence)。

      使用自定义QTP保留对象

      做完以上设置后,重新启动QTP,然后分为两种使用方式

      在关键字视图中调用

      在Insert菜单中选择Step Generator,然后选择Utility Objects,你可以在Object中看到我们定义的保留对象,如下显示:

    图4.1

      选中后,你可以在Opertion中看到我们定义的方法,你可以选择某个方法使用。

    在专家视图中调用

    图4.2

      便捷的控制自动完成(auto-complete)和代码智能感知功能,我们可以大声的说,QTP的功能我们也可以实现了。

    图4.3

      方便的参数说明提示,使你更容易理解参数说明的意义,使用起来一目了然,你不用了解函数库里面封装的具体内容和死记函数名称,你只需输入”.”,QTP就会自动给出你友好的提示。

    图4.4

      小结

      通过以上图示我们完成了自己封装的DLL函数的自动显示和调用,这样不仅减少了我们设计代码的时间,更大的好处是给开发测试代码人员提示功能,往往一个项目中,公用函数库都是由一个到两个工程师来开发完成的,如果做成VBS或者DLL文件,那我们每次调用的时候都需要加入如下语句来完成库的加载:

    ExecuteFile "F:\xxx.vbs" ‘装载VBS文件
    Extern.Declare micLong, "Beep", "kernel32.dll", "Beep", micLong   ‘装载dll文件
    Extern.Beep 500

      以上两条语句不仅费时,而且点击“.” 后也不能控制自动完成(auto-complete)和代码智能感知,并且开发脚本人员必须特别熟悉库中的函数和过程的具体含义才能使用,库函数多了,开发脚本人员使用某个函数时,都需要进行查找,这样既不方便也不快捷,而且会大大增加了项目的工作量,所以通过我们的研究方法,完全可以按照自定义QTP保留对象来完成函数库的整合,这样开发脚本人员在使用的时候只需要知道我们的保留对象名称即可。

      总之,本文介绍了自定义QTP保留对象和注册COM对象对象的方法,其实QTP所支持的方法不仅仅如此,还有很多东西值得我们探索和研究,在自动化测试的道路上,只要我们大家为了一个共同的目的,提高自动化测试规范和流程,实现代码更高的效率,那我们会创造一个又一个神话!!!

  • 转载:qtp自定义保留对像1

    2009-01-04 16:18:38

    摘要:QTP包含了很多保留对象,其实我们可以将所有使用的方法封装成DLL文件,然后通过COM机制注册到系统中,注册自定义保留对象机制来完成对象的定义。

      关键字:QTP保留对象,COM机制

      大家在使用QTP的过程中经常会用到函数或过程,一般情况下大家将这些函数写到一个文件中如:xxx.vbs中,或者直接封装成DLL文件,通过QTP的函数(ExecuteFile)来载入这些已经声明的函数和过程,然后进行具体调用。这样对于大家的使用并不方便和快捷,所以本人就展开了对于自定义QTP保留对象的研究。

      一、在VB环境下新建一个DLL文件

      1、打开VB6.0环境,新建如下工程

    图1.1

      2、简单设计一个函数和一个过程,代码如下:

    ‘*****************************
    ‘函数功能:比较两个数是否相等‘输入参数:Para1、Para2

    ‘输出参数:弹出提示

    ‘*****************************
    Public Function CompareValue(Para1, Para2)

    If Para1 = Para2 Then

    MsgBox "输入的两个参数相等", vbInformation + vbOKOnly, "提示"

    Else

    MsgBox "输入的两个参数不相等", vbInformation + vbOKOnly, "提示"

    End If

    End Function

    3、设置工程属性

      

      图中1.3

      上图所示:

      红色标注1、表示类名,设置为:ClassName,注册自定义保留对象用到。

      红色标注2、表示工程名,设置为:PrjName,注册自定义保留对象用到。

      4、生成文件:PrjName.dll

      点击文件——>生成 PrjName.dll

      二、 注册DLL文件为标准的COM组件

      如果文件放到F盘下,那运行:regsvr32 f:\PrjName.dll就可以完成注册,撤销注册运行:regsvr32 /u f:\PrjName.dll。注册完成后,注册表HKEY_CLASSES_ROOT中查询PrjName.ClassName如下:

      

      

       你可以点击每一个文件夹查询选项的值。

  • QTP学用函数

    2008-12-18 18:20:44

    收集了一些QTP常用函数,已经过调试。
    Public pm,dd_id
    'arrRange = ReadFile("D:\test.xls","sr")
    'Msgbox UBound (arrRange,1)
    'Msgbox UBound (arrRange,2)
    ' 读取其中一个单元格的数据
    'Msgbox arrRange(1,1)
     
     '将excel里的数据读到数组中。
    ' 输入:
    '             sFileName: Excel文件
    '             sSheetName:表单名称
    ' 返回:
    '             包含Excel数据的数组
    Function ReadFile(sFileName,sSheetName)
           Dim oExcel
           Dim oSheet
           Dim oRange
           Dim arrRange
     
           On Error Resume Next
               ' 创建Excel应用程序对象
                  Set ōExcel = CreateObject("Excel.Application")
                  If err.Number <> 0 Then
                         MsgBox "未能初始化Excel" & vbCrLf & _
                                     "请确保Excel已安装", vbCritical
                         Exit Function
                  End If
           On Error Goto 0
                        
           On Error Resume Next
                         ' 打开Excel文件
                         oExcel.Workbooks.Open(sFileName)
                      If err.Number <> 0 Then
                                MsgBox "未能加载Excel文件" & vbCrLf & _
                                       "请确保Excel文件路径正确或格式正确", vbCritical
                                Exit Function
                         End If
           On Error Goto 0
          
           ' 获取表格的使用范围
           Set ōSheet = oExcel.Worksheets(sSheetName).UsedRange
           ' 获取从A列到Z列,从第1行到第1000行的范围i中的所有值
           Set ōRange = oSheet.Range("A1:Z1000")
           '把Excel数据转换到数组
           arrRange = oRange.Value
           ' 关闭工作簿
        oExcel.DisplayAlerts = false '不显示提示框
           oExcel.WorkBooks.Item(1).Close
          '退出Excel
           oExcel.Quit
         Set ōExcel = Nothing
        ' 返回包含Excel数据的数组
         ReadFile = arrRange
    End Function

    'Company:transn
    'Author:Ellie
    'Product:TPM
    'Date:date()

    '读Excel文件元素
    Public Function QTP_Read_Excel(pathway,sheetname,x,y)
     Dim srcData,srcDoc,ret
     set srcData = CreateObject("Excel.Application")
     srcData.Visible = True
     set srcDoc = srcData.Workbooks.Open(pathway)
     srcDoc.Worksheets(sheetname).Activate
     ret = srcDoc.Worksheets(sheetname).Cells(x,y).value
     srcData.Workbooks.Close
     Window("text:=Microsoft Excel").Close
     QTP_Read_Excel = ret
    End Function

     

    '写Excel文件元素并保存退出
    Public Function QTP_Write_Excel(pathway,sheetname,x,y,content)
     Dim srcData,srcDoc,sp1,sp2,num,use,a1,a2,a3
     set srcData = CreateObject("Excel.Application")
     srcData.Visible = True
     set srcDoc = srcData.Workbooks.Open(pathway)
     srcDoc.Worksheets(sheetname).Activate
     srcDoc.Worksheets(sheetname).Cells(x,y).value = content
     
     Dim WshShell
     Set WshShell=CreateObject("Wscrīpt.Shell")
     WshShell.SendKeys "^s"
     wait(1)
     
     srcData.Workbooks.Close
     Set srcDoc = nothing
     
     Window("text:=Microsoft Excel").Close
    End Function
    Public Res,Cmd
    'call method:在调用文件中先定义Res,Cmd
    'For example:Dim  Res,Cmd'             DBConnect()
    Public Sub DBConnect()    
     Dim StrCon   
          Set Res = CreateObject("ADODB.Recordset")        
          Set Cmd = CreateObject("ADODB.Command")    
        'Oracle     
          StrCon ="DRIVER={MySQL ODBC 3.51 Driver};SERVER=10.0.0.15;DATABASE=DEV_tpm_watt;PASSWORD=tpm20080808;User ID=tpm_watt;STMT=SET NAMES GBK" 
           Cmd.activeconnection=StrCon    
       Cmd.CommandType =1
       End Sub

    'function:执行SQL语句
    'Input parameter: StrSql
    'For example:Dim sql
    '             sql="select * from admin_groups"
    '             ExecuteSql(StrSql)
    Public Sub  ExecuteSql(StrSql)
     Cmd.CommandText=StrSql
     Set  Res = Cmd.Execute()

    End Sub

    '---------------------------------------------------------
    'function:关闭数据库
    'For example:DBClose()
    '---------------------------------------------------------
    Public Sub DBClose()
     Set Res=nothing
     Set Cmd.activeconnection=nothing
     Set Cmd=nothing
    End Sub

    '-------------------------------------------------------
    '获取IP地址
    function IPAddress
    Dim WS
    Set WS=CreateObject("MSWinsock.Winsock")
    IPAddress=WS.LocalIP
    MsgBox "Local IP=" & IPAddress
    end function

     

     

  • 自制糯米酒的方法

    2008-12-10 15:39:42


    一直想自做一次糯米酒,但是由于种种原因都没做成(主要是因为在北京找不到

    让米发酵东西),今天看到以前收藏的自制糯米酒的方法,特在此收藏,有机会

    以后再做。

    原料:糯米(没有糯米,普通大米代替也可)、甜酒药

      (1)将糯米洗净,用水泡两个小时

      (2)象蒸馒头的方法一样,用蒸锅蒸四十分钟

      (3)蒸好后,一定要完全晾凉

      (4)用凉水搅拌顺一个方向糯米,将糯米打散,差不多一斤米一小碗水

      (5)把酒曲赣成粉末,拌在糯米里

      (6)将糯米放入容器,中间做一个洞,洞里撒上酒曲,糯米的表面也撒上酒

      (7)盖上盖子,放在温暖的方法。25度到30度的温度最理想。

      (8)24小时后打开查看,如看到洞里有酒出来了,就差不多好了。温度不够

    ,就要相对时间长些。

  • 食谱中英对照

    2008-12-10 11:22:57

    今天看到一个食谱,里面正好有中英文对照,把几个比较常是用的摘下来学习一下:
    糖醋里脊 Sweet and Sour Pork
    宫保鸡丁Gong Bao Chicken 
    麻婆豆腐 Ma Po Bean Curd
    馄饨 Wonton Soup 
    饺子 Dumplings  

    春卷 Spring Rolls 
    炒面 Chow Mein 
    烤鸭 Peking Duck

  • 打开QTP,自动加载编写的脚本。

    2008-11-13 13:48:51

      在启动qtp的时候,每个action可能都要调用一个或者几个EXCEL文件或者VBS写的函数,每次都要重新写这些脚本很麻烦,能否在每次启动的时候自动加载写好的脚本呢,肯定是可以的。方法很简单

    1、新建一个文本文件,将需要加载的脚本放到该文件中,如:

    '********Authorellie_zhang

    environment.LoadFromFile("D:\autotest\数据\环境变量.xml")

    shujuwenjian=environment.Value("Tdir")&"数据\dd_xmshuju.xls"

    filename=environment.Value("Tdir")&"公用函数\qtp_function.vbs"

    executefile filename

    datatable.ImportSheet shujuwenjian,"src","drc"

    2、将该文本文件的名称改为“ActionTemplate.mst”注意扩展名为:.Mst

    3、将该文件ActionTemplate.mst放到qtpdata目录下,如:C:\Program Files\Mercury Interactive\QuickTest Professional\dat

    4OK了,重新打开QTP看看里面有没有上面的脚本。

  • 对象参数化问题

    2008-11-10 18:09:21

       一直困扰我好几天的问题,终于今天得以解决,感觉自已对对像库以及对象参数化的认识又有一个飞跃。其实问题很解单,其解决的方法更简单,只是以前对对象的理解不是很深刻,其中有一些误解,所以造成自已郁闷了几天。

    给自已一个总结:以后有时间或者遇到问题的时候一定要冷静对待,不要一碰到问题就开始盲目的在网上找原因或者是问别人,自已一定要仔细看下QTP下的帮助文档,QTP的帮助文档是最好的助手。不啰嗦那么多了,先把问题以及解决方法描述下,给以后碰到此类似问题的朋友一个启示。

    问题:下图是一表格,表格中订单名称字段里的值可以链接到订单详情页面(url中包含订单ID),其中订单名称可以重复,并且名称如果太长在该表中会显示不全。现在就是要录制点订单名称打开相应的订单,其中需要将订单名称和所对应的URL进行参数化。

     

     

    存在的问题,我按默认方式进行录制,代码如下:

    Browser("Browser").Page("page").Link("asdfsd…").Click

    我对该link对像进行参数化

    Browser("Browser").Page("page").Link("asdfsd…").SetTOProperty "url","http://yahu.com&dd_id=123456"

    Browser("Browser").Page("page").Link("asdfsd…").SetTOProperty "text",dd_mc

    Browser("Browser").Page("page").Link("asdfsd…").Click

     

    运行以上代码会一直提示找不到Link("test")对像,或者是该对像不能不唯一标识。

     

    解决办法

    修改link录制的属性,只录制Linkhtml tag index属性,其它的操作不变。

     

    所有需要参数化的对象,都不要录制他,在他运行的时候只需给他指定的值就行了。呵呵,不知道这种做法会不会误导别人。

     

  • 转:英文自我介绍

    2007-12-17 12:40:23

    1)Good morning teachers, I am glad to be here for this interview. Let me introduce myself. My name is 某某. I am 24 years old and I am local.
    I majored in Computer Science and Technology in School of Mathematics and Computer science, Nanjing Normal University from 1998 to 2001. During those three years, I have become familiar with the computer system organization and its components including computer hardware and software. Also, I have become comfortable with computer programming and showed great interest in it. 

    2)MBA英文自我介绍

      关于简历 Framework(格式)

      1.Basic information (personal data)

      Name sex marital status health date of birth address phone numbers email address

      2. career objective

      3. Education background

      4. working experience

      【注意】3、4两项的内容都是按照由近及远、由高到低的次序进行排列。

      5. personal qualities

      6. language proficiency

      7. computer literacy

      8. interests and hobbies

    样本

      Resume of (your name)

      Address (street, city, province, post code)

      Sex Birth Date

      Home Phone Office Phone

      Mobile Phone Email Address

      Marital status

      ID Card Number

      Working History

      按时间

      From 1998to2002 Position: assistant to the chief manager

      Name and Place of the work unit: ABC Company

      Responsibility: compiled reports for the chief engineer on

      production

      Achievements:

      按职务

      editor:

      time

      place

      responsibility

      achievements

      accountant:

      time

      place

      responsibility

      achievements

      按工作性质

      computer operation:

      time

      place

      responsibility

      achievements

      computer system planning

      time

      place

      responsibility

      achievements

      personnel supervisor

      time

      place

      responsibility

      achievements

      Education

      From to Academic Degree: B.A received in July 1983

      Name and Place of the University: Beijing University

      Major: management

      Minor: English

      Honors, awards and achievements: earned academic scholarship, 2 years, top ten graduates

      Activities: literary club, secretary

      Published two papers

      Among the pertinent courses taken are:

      Public Finance

      Technical Qualifications

      From to (certificate received)

      From to (certificate received)

      From to (certificate received)

      Personal Qualities

      Language Proficiency

      Computer Literacy

      Hobbies and Interests

      简历中常用动词

      1. achieved sales increase by 15*

      2. acquired enough experience for ….

      3. acted as interpreter for the last 5 years

      4. attended all these meetings, and assisted the project manager to make financial decision

      5. cooperated a project for a fast food restaurant

      6. completed the negotiation and achieved sales increase by *

      7. conducted a seminar

      8. controlled the budge9. coordinated operations of a hotel with manager

      10. created a good image for Co

      11. developed marketing skills by working as a salesman for years

      12. devised a system which could simplify working process

      13. directed a staff of ten in producing the newspaper and selling it

      14. experienced in operations of …

      15. gained retail experience including the marketing research

      16. handled public relations

      17. helped coordinate operation of a computer company

      18. improved efficiency of work and reduced its expenses

      19. initiated and carried out a research project to evaluate the trade market

      20. served as an assistant manager in a world-famous chain store

      21. supervised 6 person research team for 5 years

      22. worked one year as a …

      简历中涉及到的语法问题

      1. 将所有第一人称代词从简历中拿掉(I, we, me, my), 当然更不能用第三人称代词。

      2. 冠词:简历当中不需要冠词,例如:应写retrained staff而不是retrained the staff

      3. 助动词:简历当中不需要助动词,所以,应该写managed 而不是have managed

      4. 动词:简历当中的所有主要动词全部用动词的过去式形式。

      5. being性动词:简历中一律使用主动语态,不要出现am, is, are, were, was等词。

      6. 时态转换:简历中的时态基本保持过去式,偶尔用一般现在式。

      7. 复合句:在简历中少用复合句,将其拆成若干短小的句子,最多带一个从句,主句都是类似祈使句的样子——无主语

      Self-statement(个人介绍----样本)

      MY BACKGROUND

      I was born in a small village of Shan Dong Province on April 4th, 1968. When I was young, my family was very poor, so I had to work to earn money to help my parents after class when I was in the middle school.

      In 1986 I was admitted by University of International Business and Economics (or: UIBE) to pursue a bachelor degree in Economics. My major is accounting in Department of International Business Management. The undergraduate education gave me a wide range of vision and taught me how to cooperate with others. I developed several professional interests in Accounting, Finance, and International Trade.

      The following eight-year working experience offered me a good chance to give full play to my creativity, intelligence and diligence. In 1990-1993, I worked as an assistant to funding manager in China National Technical Import and Export Corporation. In 1993-present, I was employed by China Kingdom Import and Export Corporation to be the Manger of Financial and Accounting Division.

      I do believe that with my hard early life, solid educational background and ample working experience, I would be an excellent student of you MBA program.

        MY PERSONAL ACCOMPLISHMENT:

      After graduating from UIBE,I was employed as the assistant to the funding manager by China National Technical Import and Export Corporation. After reading a lot of related files,and analyzing the overall funding situation of the corporation,I found that the loan policy was not been put into effect. So we have thousands of millions RMB loan with very high interest rate while a large amount of cash in bank with very low interest rate was idle. I reported this to my supervisor,and then we studied and revised the loan policy. This revision saved the corporation approximately RMB thirty millions yuan. In order to raise the funding effectiveness,after one year‘s hard work,I developed the internal banking system within the corporation based on the actual funding supply and need of the different divisions and projects. This internal banking system made full use of the corporation’funding resources,and due to this,I was highly praised by the president of the corporation.

      WHY CHOOSE YOUR MBA PROGRAM?

      After I have worked in business area for eight years,I feel that I need to continue my education by pursuing a Master degree in business administration. I have practiced my professional expertise in accounting,demonstrated my leadership abilities and perfected my communication skills. But I have yet to become an entrepreneur in my own right,and to fully master the art of modern business. I want to be trained more vigorously in scientific methods of analysis and synthesis. There are a lot of opportunities and challenges in China that I do not yet fell fully confident to seize. My business career has so far benefited mostly the companies that I worked for,but a good business education in your university will probably become a new era for me.

      Your university is well known for its excellence in China‘s business education. I am sure that,with my extensive business experience,I can be a worthy student of yours. I am anxious to benefit from your seasoned guidance and take advantage of your research facilities.

  • 英语面试常见问题

    2007-12-17 12:10:59

     

    It is a great pleasure for me to have this opportunity for the interview.

    我能有机会来参加面试感到非常荣幸。

    I am very happy that I am qualified for this interview.

    我非常高兴能获得这个面谈机会。

     

    1Educational Background

     How about your academic records at college?

    你大学的成绩如何?

     I have been doing quite well at college.

    我在大学时学习很好。

    My specialization at the university is just in line with the areas your institute deals with.

    我在大学所学的专业和你们研究所所涉及的范围刚好对口。

    I was one of the top students in the class.

    我是班里最优秀的学生之一。

     

    Key Word:

    major 主修课;主修的;主修  minor in 辅修 

    degree 学位  bachelor 文理学士

    a bachelor’s/ master’s /doctor’s degree

        学士学位、硕士学位、博士学位 

    honor 荣誉   award 奖励    scholarship 奖学金 

    注意几个关键的词语:degree(学位)、subject(科目)、department(系)、Bachelor’s degree(学士学位)、major(主修)、minor(辅修)。

     

     Which course did you like best? 你最喜欢哪门课程?

     在回答提问时要注意投其所好, 这时你最好回答和所应聘公司相关的科目,这会让他留下你很有潜力的印象。

     

    How have you been getting on with your studies so far

    A:  I have been doing quite well at college. According to the academic records I have achieved so far, I am confident that I will get my Bachelor of Computer Science and Technology this coming July.

     

    2 .Work experience 

    Key Words:

    个人发展(development)、机会(opportunitychance)、工作环境(working environmentposition   职位、responsibility 责任,职责

    be qualified for  适于担任    apply for  申请   advancement  提升,晋升 

    convenient  方便的   professional  专业的  

    background 背景      intern          实习生

    1.        Have you got any experience in programming?

    你有编程方面的经验吗?

    Yes, sir. I have been a software engineer in an software company.

    是的,先生,我一直在一家软件公司担任工程师工作。

    Although I have no experience in this field, I'm willing to learn.

    虽然在这方面我没有经验,但是我愿意学习

     

    2 . Thank you for your interest in this position. Why do you consider yourself qualified for this job?

    谢谢你对本公司的兴趣,为何你认为自己符合这职位的资格?

    My educational background and professional experience make me qualified for the job.

    我的教育背景和工作经验使我能够胜任这项工作。

     

    3. What‘s your career objective?

    你的事业目标是什么?

    I hope I could be a project manager of an energetic and aggressive team.

    我希望成为一支有活力、有进取心的队伍的项目经理。

     

    4. Why do you want to apply for a position in our company?你为什么想申请来我们公司?

    Because I think my major is suitable for this position.

    因为我认为我的专业适合这个职位。

        Because your operations are global, so I feel I can gain the most from working in this kind of environment.

    因为你们公司的运作是全球化的, 我觉得在这样一个环境中工作会收获最多。

     

    5. I:  Why do you think you are qualified for this position?

    为什么你认为你能胜任我们公司这个职位呢?

    A:   My educational background and professional experience make me qualified for the job. Besides, I am a team player and have great interpersonal skills.

    我的教育背景和工作经验使我能够胜任这项工作。而且我具有团队精神和出色的人际关系技能。

     

    6. I:  How would you describe your ideal job?

    A:  I think the job should make use of the professional experience I have obtained, and offer me opportunity for advancement.

    I: 你理想的工作是什么样的?

    A: 我认为应该能发挥我掌握的专业知识,而且能为我提供升职的机会

     

    Character and hobby

    Key  Words :

     

    open-minded 开明的,开放的  easy-going  容易相处的

    personality  个性,人格  enthusiastic  充满热情的

    leisure 空闲的,闲暇的  hobby  业余爱好

    优点 strong pointsstrengthsmerits

    缺点 shortcomingsweaknesses

    性格 character, personality

     

    1. What kind of character do you think you have?

       你认为自己是什么性格的人?

    I'm quite active and energetic. I approach things enthusiastically and I don't like leaving things half done.我积极而充满活力。我热诚对待每件事,不喜欢半途而废。

     

    2. What kind of person would you like to work with? 你喜欢和什么样的人一起工作呢?

    I like to work with people who are honest, dedicate to their work and have integrity.
    我喜欢和诚实、对工作投入、为人正直的人一起工作。

     

    1. Are you introverted or extroverted?

       你内向还是外向?

    I wouldn't call myself introverted though sometimes I'm reserved and enjoy staying all by myself, often and often I like sharing activities with others.

    我不算内向,尽管有时我沉默寡言,喜欢独处,但我经常和大家在一起活动。

     

    4. What kind of sports do you like most?

    你最喜欢什么运动?

    Football is a very exciting game because it keeps you alert and I also enjoy the team spirit of football.

    足球是一项极刺激的运动,它会使你保持灵敏,我也喜欢足球活动中的团队精神。

     

    5 What are your hobbies? How do you spend your spare time?

    你的业余爱好是什么?你的业余时间怎么度过?

    I have many hobbies. I like almost all kinds of sports and I also like to listen to classical music.
    我有很多爱好。我喜欢几乎各类运动,也喜欢听古典音乐。

     

    6 How do you get along with others?

    你和别人相处得怎样?

    I get on well with others.

    我和别人相处得很好。

     

    7. What are your weak points?

    你的缺点是什么?sometimes , I continually strive after perfection to do somethings.

    When I think something is right, I will stick to that. Sometimes it sounds a little stubborn but I am now trying to find a balance between insistence and compromise.

    若我认为某件事情是对的,我会坚持到底。有时候,这显得有点顽固,因此我正努力在执着与妥协之间寻求平衡。

    8. I:  What kind of character do you think you have?

    A:  Generally speakingl am an open-minded person.

    I:  What is your strongest trait

    A:  Cheerfulness and friendliness.

     

    9 .Were you involved in any club activities at your university?

    你在大学有没有参加过什么社团活动?

    Yes, I was on the chairman of college student union.

    有,我曾担任学生会主席。

    Yes ,I was a monitor of my class.

    有,我担任班长一职。

     

    Do you have any question? 你还有什么问题吗?

    外企的这个问题看上去可有可无,其实很关键,外企不喜欢说“没有问题”的人,因为其很注重员工的个性和创新能力。外企不喜欢求职者问个人福利之类的问题,如果有人这样问:贵公司对新入公司的员工有没有什么培训项目,我可以参加吗?或者说贵公司的晋升机制是什么样的?外企将很欢迎,因为体现出你对学习的热情和对公司的忠诚度以及你的上进心。

  • 英文简历常用词汇

    2007-12-17 12:05:54

    从网上找了一些英文简历常用的词汇,觉得很不错,放到自已空间里,以方便查看,此篇来自于ZT的测试空间
    个人品质常用词汇

    able 有才干的,能干的        adaptable 适应性强的
    active 主动的,活跃的      aggressive 有进取心的
    ambitious 有雄心壮志的      amiable 和蔼可亲的
    amicable 友好的          analytical 善于分析的
    apprehensive 有理解力的 aspiring 有志气的,有抱负的
    audacious 大胆的,有冒险精神的 capable 有能力的,有才能的

    careful 办理仔细的      candid 正直的
    competent 能胜任的          constructive 建设性的
    cooperative 有合作精神的 creative 富创造力的
    dedicated 有奉献精神的      dependable 可靠的
    diplomatic 老练的,有策略的 disciplined 守纪律的
    dutiful 尽职的 w       ell--educated 受过良好教育的
    efficient 有效率的           energetic 精力充沛的
    expressivity 善于表达       faithful 守信的,忠诚的
    frank 直率的,真诚的       generous 宽宏大量的
    genteel 有教养的            gentle 有礼貌的
    humorous 有幽默           impartial 公正的
    independent 有主见的      industrious 勤奋的
    ingenious 有独创性的      motivated 目的明确的
    intelligent 理解力强的 learned 精通某门学问的
    logical 条理分明的      methodical 有方法的
    modest 谦虚的           objective 客观的
    precise 一丝不苟的       punctual 严守时刻的
    realistic 实事求是的       responsible 负责的
    sensible 明白事理的       sporting 光明正大的
    steady 踏实的           systematic 有系统的
    purposeful 意志坚强的 sweet-tempered 性情温和的
    temperate 稳健的           tireless 孜孜不倦的
    教育程度常用词汇
    education 学历          educational history 学历
    educational background 教育程度 curriculum 课程
    major 主修 minor 副修
    educational highlights 课程重点部分         curriculum included 课程包括
    specialized courses 专门课程 courses taken 所学课程
    special training 特别训练    social practice 社会实践
    part-time jobs 业余工作     summer jobs 暑期工作
    vacation jobs 假期工作     refresher course  进修课程
    extracurricular activities 课外活动               physical activities 体育活动
    recreational activities  娱乐活动              academic activities 学术活动
    social activities 社会活动 rewards 奖励
    scholarship 奖学金 excellent League member 优秀团员
    excellent leader 优秀干部 student council 学生会
    off-job training 脱产培训 in-job training 在职培训
    educational system 学制 academic year 学年
    semester 学期(美) term 学期(英)
    supervisor 论文导师 pass 及格
    fail 不及格 marks 分数
    examination 考试 degree 学位
    post doctorate 博士后 doctor(Ph.D) 博士
    master 硕士       bachelor 学士
    graduate student 研究生 abroad student 留学生
    abroad student 留学生 undergraduate 大学肆业生
    government-supported student  公费生 commoner 自费生
    extern 走读生        intern 实习生
    prize fellow 奖学金生   boarder 寄宿生
    graduate 毕业生     guest student 旁听生(英)
    auditor 旁听生(美) day-student 走读生

    工作经历常用词汇

    work experience 工作经历 occupational history 工作经历
    professional history 职业经历 specific experience 具体经历
    responsibilities 职责      second job 第二职业
    achievements 工作成就,业绩 administer 管理
    assist 辅助          adapted to 适应于
    accomplish 完成(任务等) appointed 被认命的
    adept in 善于 analyze 分析
    authorized 委任的;核准的 behave 表现
    break the record 打破纪录     breakthrough 关键问题的解决
    control 控制            conduct 经营,处理
    cost 成本;费用        create 创造
    demonstrate 证明,示范 decrease 减少
    design 设计            develop 开发,发挥
    devise 设计,发明        direct 指导
    double 加倍,翻一番       earn 获得,赚取
    effect 效果,作用      eliminate 消除
    enlarge 扩大            enrich 使丰富
    exploit 开发(资源,产品)        enliven 搞活
    establish 设立(公司等);使开业 evaluation 估价,评价
    execute 实行,实施       expedite 加快;促进
    generate 产生 good at  擅长于
    guide 指导;操纵       improve 改进,提高
    initiate 创始,开创       innovate 改革,革新
    invest 投资          integrate    使结合;使一体化
    justified 经证明的;合法化的     launch 开办(新企业)
    maintain 保持;维修      modernize 使现代化
    negotiate 谈判      nominated 被提名;被认命的
    overcome 克服        perfect 使完善;改善
    perform 执行,履行     profit 利润
    be promoted to 被提升为    be proposed as   被提名(推荐)为
    realize 实现(目标)获得(利润) reconstruct 重建
    recorded 记载的            refine 精练,精制
    registered 已注册的 regenerate 更新,使再生
    replace 接替,替换 retrieve 挽回
    revenue 收益,收入 scientific 科学的,系统的
    self-dependence 自力更生 serve 服务,供职
    settle 解决(问题等) shorten 减低……效能
    simplify 简化,精简 spread 传播,扩大
    standard 标准,规格 supervises 监督,管理
    supply 供给,满足 systematize 使系统化
    test 试验,检验 well-trained 训练有素的
    valuable 有价值的        target 目标,指标
    working model 劳动模范 advanced worker 先进工作者


    个人资料常用词汇
    name 姓名 in. 英寸
    pen name 笔名 ft. 英尺
    alias 别名 street 街
    Mr. 先生 road 路
    Miss 小姐 district 区
    Ms (小姐或太太) house number 门牌
    Mrs. 太太 lane 胡同,巷
    age 年龄 height 身高
    bloodtype 血型 weight 体重
    address 地址 born 生于
    permanent address 永久住址       birthday 生日
    province 省 birthdate 出生日期
    city 市 birthplace 出生地点
    county 县 home phone 住宅电话
    prefecture 专区     office phone 办公电话
    autonomous region 自治区     business phone 办公电话
    nationality 民族;国籍 current address 目前住址
    citizenship 国籍    date of birth 出生日期
    native place 籍贯     postal code 邮政编码
    duel citizenship 双重国籍    marital status 婚姻状况
    family status 家庭状况       married 已婚
    single 未婚           divorced 离异
    separated 分居       number of children 子女人数
    health condition 健康状况        health 健康状况
    excellent (身体)极佳     short-sighted 近视
    far-sighted 远视       ID card 身份证
    date of availability  可到职时间 membership 会员、资格
    president 会长 vice-president 副会长
    director 理事 standing director 常务理事
    society 学会 association 协会
    secretary-general 秘书长 research society 研究会

    应聘职位

    objective 目标       position desired 希望职位
    job objective 工作目标 employment objective 工作目标
    career objective 职业目标   position sought 谋求职位
    position wanted 希望职位 position applied for  申请职位

    离职原因

    for more specialized work 为更专门的工作             for prospects of promotion 为晋升的前途
    for higher responsibility 为更高层次的工作责任        for wider experience 为扩大工作经验
    due to close-down of company 由于公司倒闭        due to expiry of employment 由于雇用期满
    sought a better job 找到了更好的工作             to seek a better job 找一份更好的工作

    业余爱好

    hobbies 业余爱好         play the guitar 弹吉他
    reading 阅读           play chess 下棋
    play 话剧     long distance running 长跑
    play bridge 打桥牌   collecting stamps 集邮
    play tennis 打网球       jogging 慢跑
    sewing 缝纫          travelling 旅游
    listening to symphony 听交响乐 do some clay scultures 搞泥塑

  • LoadRunner如何获得参数化中每个关键字的搜索响应时间

    2007-12-13 10:01:05

     
    看到一篇觉得很好的有关loadrunner的文章,为了方便找,在这里先放一下:
     
            在测试搜索引擎时我们一般采用大量的搜索关键字,有时有必要了解在并发访问的情况下每个关键字的响应时间,一般如果不对脚本进行处理的话你可以获得每个关键字的响应时间但是这些时间没有跟相应的关键字对应,所以对程序的调优没有什么大的帮助,这里介绍一种方法,可以让你知道在并发访问下每个关键字的响应时间。
            解决办法是可以把搜索搜索的操作定义为一个事务,事务名也用参数值代替,这样就可以从测试结果中知道该关键字的响应时间了。举例如下:
    #include "web_api.h"
    Action()
    {
     lr_start_transaction(lr_eval_string("{SearchParam}"));
     web_url("s",
       "URL=http://www.baidu.com/s?wd={SearchParam}",
       "Resource=0",
       "RecContentType=text/html",
       "Referer=",
       "Snapshot=t1.inf",
       "Mode=HTTP",
       LAST);
     lr_end_transaction(lr_eval_string("{SearchParam}"), LR_AUTO);
     return 0;
    }
            这样就可以在场景运行时通过事务监视图中就可以看到每个关键字的所用的时间了。
            这种方法的缺点是当关键字比较多时,监视器中行数会增多,可能导致Controller显示不下。
            还有一种方法,示例如下:
    #include "web_api.h"
    Action(){
     float trans_time;
     lr_start_transaction("sousuo");
     web_url("s",
      "URL=http://www.baidu.com/s?wd={SearchParam}",
      "Resource=0",
      "RecContentType=text/html",
      "Referer=",
      "Snapshot=t1.inf",
      "Mode=HTTP",
      LAST);
     trans_time =  lr_get_transaction_duration("sousuo") * 1000;
         lr_output_message("SearchParam:%s,duration:%fms",lr_eval_string("{SearchParam}"),trans_time);
     lr_end_transaction("sousuo", LR_AUTO);
     return 0;
    }
            一般使用这种方法比较好,可以把lr_output_message函数换为自定义的函数,把结果写到一个结果文件中去,注意写入的文件最好以vuser id来命名,这样可以保证同时只有一个进程在读写这个文件(这样一来不同的用户读写不同的文件,否则如果所有用户写入同一文件在用户数多的情况下并发可能造成对同一文件的访问共享违例,获得vuser id的函数为lr_whoami)。另外需要说明的是这里获得的事务时间可能比通过lr_start_transaction和lr_end_transaction获得的事务的时间要小一些,这是由于测试工具自身的原因造成的,可以不必理会。
            同时,如果想知道查询过程中哪个关键字搜索结果错误,也可以加上验证点,同时可以再加一些代码,把搜索超过一定时间的关键字过滤出来。
  • SQL Server 2005性能测试实践 - CPU篇(1)

    2007-02-07 16:09:54

    摘自CSDN

    如果在没有额外复杂条件下突然出现CPU瓶颈,有可能是因为没有优化查询,错误的数据库配置,或者是数据库设计上的原因和硬件资源不足引起。在决定采用增加CPU数量或者使用更快速的CPU之前,应该先检查消耗CPU资源最多的操作是否能够被优化

    如果发现性能计数器Processor: % Processor Time的值很高,每一个CPU的% Processor Time都超过80%时,可视为出现CPU瓶颈。也可以通过视图sys.dm_os_schedulers监视SQL Server的进程调度(schedulers)来确认可执行的任务是否为非零值。非零值表示任务被迫等待时间片来运行,如果这个数值非常高,说明存在CPU瓶颈。

    Select scheduler_id,current_task_count,runnable_task_count from sys.dm_os_schedulers where scheduler_id<255

    下面的查询将给出一个较高层的视图来说明当前被缓存的消耗CPU资源最多的批处理或者过程。查询通过相同查询句柄的所有语句合计CPU的消耗情况。

    Select top 50 sum (qs_total_worker_time) as total_cpu_time,sum(qs.execution_count) as total_execution_count, count(*) as number_of_statements,qs.plan_handle from sys.dm_exec_query_stats qs group by qs.plan_handle order by sum(qs.total_worker_time) desc

    过多的compilation和recompilation

    在批处理或者远程过程调用(RPC)提交到服务器执行之前,系统会检查查询计划的有效性和正确性。如果在检查过程中出现了失败的情况,这些批处理可能会被再次编译来产生新的查询计划。这样的编译被称为重编译(recompilations)。这些重编译一般必须确定正确性且通常在服务器认定在潜在数据发生变化后存在可能被优厚的查询计划时执行。编译的特性是CPU敏感的操作,因此过分的重编译可以导致CPU性能问题。

    在SQL Server 2000中,当SQL Server重新编译一个存储过程时,整个存储过程都会被重编译,而不只是触发重编译的语句。SQL Server 2005引入了一种语句级别重编的存储过程。当SQL Server 2005重新编译存储过程时,只有引起重编译的语句才会被编译而不是整个过程。这就减少了CPU带宽并且减少了资源锁出现的可能,例如:COMPLIE locks. 重编译可以由于很多不同的原因造成,如:

    l 架构变化

    l 统计变化

    l 延期编译

    l SET选项变化

    l 临时表变化

    l 存储过程以RECOMPLIE选项建立。

    检测

    使用System Monitor 或者 SQL Server Profiler来检测过多的编译和重编译。

    System Monitor

    SQL Statistics对象提供计数器来监视编译和发送到SQL Server实例的请求类型。必须通过监视查询编译和重编译的数量结合接收到的批处理数量来找出高CPU消耗是否是由编译引起。理想情况下,SQL Recompilations/sec和Batch Requests/sec的比率应该应该非常低,除非用户提交的是即席查询。

    以下是关键数据计数器:

    l SQL Server: SQL Statistics: Batch Requests/sec

    l SQL Server: SQL Statistics: SQL Compilations/sec

    l SQL Server: SQL Statistics: SQL Recompilations/sec

    SQL Trace

    如果性能计数器显示非常大的重编译数量,重编译可能正在造成高CPU消耗。接下来需要需要利用SQL Profiler纪录的trace来找出当时被重新编译的存储过程。SQL Server Profiler trace可以给出这些信息连同重编译的原因。可以使用事件来获取这些信息。

    SP: Recompile / SQL: StmtRecompile. The SP:Recompile and the SQL:StmtRecompile事件类显示哪些存储过程和语句曾经被重新编译过。当编译一个存储过程时,为存储过程和每一个被编译的语句生成事件。然而,当一个存储过程被重新编译时,只有引起重新编译的语句才会被生成一个事件(不同于SQL Server 2000中的整体存储过程编译)。

    SP:Recompile事件类中的重要的数据列如下所示:

    l Event Class

    l EventSubClass

    l ObjectID(表示包含这个语句的存储过程)

    l SPID

    l Start Time

    l SqlHandle

    l TextData

    EventSubClass数据列对于确定重编译原因来说非常重要。一旦过程或者触发器被重新编译,SP:Recompile就会被触发,但是有可能被重编译的即席批处理不会引发这个事件。 在SQL Server 2005中,监视SQL:StmtRecompiles时非常有用的,任何类型的批处理,即席查询,存储过程或者触发器被重编译时,这个事件类都会被触发。

    保存trace文件,使用下面的查询来查看所有的重编译事件。

    Select spid,starttime,textdata,eventsubclass,objected,databaseid,sqlhandle from fn_trace_gettable (‘filepath.trc’,1) where EventClass in(37,75,166)

    EventClass 37是SP:Recompile, 75是CursorRecompile, 166是SQL:StmtRecompile.

    也可以进一步对这些查询结果根据Sqlhandle和ObjectID列进行分组来查看是否有某个存储过程存在大量的重编译或者由于其他原因导致的重编译(如Set选项变化)。

    Showplan XML For Query Compile. 这个事件类在Microsoft SQL Server编译或者重新编译SQL语句时发生。这个事件中有关于被编译或者重编译的语句的信息。这些信息包括查询计划和存在问题的过程的Object ID。如果发现SQL Compilations/sec计数器数值很高,应该监视这个事件类。通过这些信息可以发现哪些语句被频繁的重编译。可以使用这些信息改变那些语句的参数。这应该会降低重新编译的次数。

    DMVs

    当使用sys.dn_exec_query_optimizer_info DMV时,可以得到SQL Server花费在优化上的时间。

    Select * from sys.dn_exec_query_optimizer_info

    Counter occurrence value

    Optimizations XX XX

    Elaspsed time XX XX

    Elaspsed time是消耗在优化上的时间。这个事件一般接近于消耗在优化上的CPU时间。

    另外一个用来捕获这些信息的DMV是 sys.dm_exec_query_stats

    下列是需要查询的数据列:

    l Sql_handle

    l Total worker time

    l Plan generation number

    l Statement Start Offset

    Plan_generation_num表示查询被编译的次数。下列语句给出前25个被编译的存储过程。

    Select top 25 sql_text.test,sqlhandle,plan_geration_num,execution_count,dbid,objectid from sys.dm_exec_query_stats across apply sys.dm_exec_sql_text(sql_handle) as sql_text where plan_generation_num>1 order by plan_generation_num desc

    解决方法

    如果检测到过多的编译/重编译,考虑以下解决方法:

    l 如果重编译是因为SET选项引起,使用SQL Profiler确定是哪一个SET发生了变化。尽量避免在存储过程内部修改SET选项。可以选择在连接级别上设置,并确保SET选项在连接的生命周期中不会发生变化。

    l 临时表的重编译极值比一般表要低。如果由于统计信息变化导致重新编译临时表时,可以考虑把临时表替换为一个table变量,同样的变化不会影响table变量。这种方法的缺点是查询优化器不能跟踪table变量的信息,因为系统不会为table变量建立和维护统计信息。这可能导致不能优化对于表变量的查询。

    另外一个选择是使用KEEP PLAN查询提示。它设置临时表的极限值与永久表一致。EventSubClass列将显示临时表上发生了”Statistics Changed” 操作。

    l 避免由于统计信息发生变化而导致的重编译(例如,当查询计划因为改变统计信息而不能被达到最优时),指定KEEPFIXED PLAN查询提示。通过这个选项的作用,重编译仅当出现正确性相关的变化时才会发生(例如,当底层表结构发生变化时才会重新编译查询)而不是由于统计数据。如果一个表的架构发生变化,或者表被sp_recompile存储过程标记,重编译将会发生。

    l 关闭被定义在一个表上的或者被索引的视图上的index & statistics的statistics自动更新防止由于在对象上的statistics的改变引起的重编译。注意,无论如何,关闭”auto-stats” 功能不是很好的选择。这是因为查询优化器不在对数据变化产生作,可能会导致非最优查询计划被执行。

    l 批处理中应该使用具属对象名(如:dbo.table1)来避免重编译和对象之间的二义性。

    l 避免由于延迟编译导致的重编译,不要使用条件结构(如IF)来插入DML和DDL或者建立DDL。

    l 运行DTA查看是否有可以改善编译时间和查询执行时间。

    l 检查是否存储过程使用WITH RECOMPILE选项建立或者查询是否使用了RECOMPILE。如果存储过程使用WITH RECOMPILE选项建立,在SQL Server 2005中,考虑利用语句级别的RECOMPILE如果存储过程中的某个语句需要被重新编译。这可以避免每次执行存储过程时的强制编译,同时允许单独的语句重编译。

    性能测试应用

    从性能测试的角度出发,可以在负载测试过程中收集有关的性能计数器,同时利用SQL Profiler收集负载测试期间有关重编译的事件类。一般情况下负载测试都会产生较高的CPU利用率,特别是压力测试。在测试结束后收集性能计数器确定是否存在过多的编译和重编译情况。

    在确定系统出现过多的编译和重编译后,对trace和DMV结果进行分析找出产生大量编译和重编译的存储过程或者语句。根据不同的原因提出相应的解决方案。

  • 性能测试方法

    2007-02-07 14:38:24

    对性能测试方法有很多不同的分类,我觉得从一种大的范围上来进行分类的话,主要有几种:性能测试、负载测试、压力测试、配置测试、并发测试、可靠性测试和失效恢复测试。现对每种测试方法的目的分别描述一下我的理解,望各位多提意见

    1、  性能测试(performance testing):它是一种我们常见的一种方法,它是通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能的要求。简单地说就是要在特定的运行条件下验证体系统的能力状况。

    这种方法的主要特点有:

    1)  这种方法的主要目的是验证系统是否有系统说明具有的能力

    2)  这种方法需要事先了解被测试系统典型场景,并具有确定的性能目标

    3)  这种方法要求在已确定的环境下运行

    2、  负载测试(load testing):有时被叫做可量性测试,它主要是通过在被测系统上不断增加压力,直到性能达到预定目标或者资源达到饱和状态。它可以找到体系统的处理能力的极限,为系统调优提供数据。

    它的主要特点有

    1)  它的主要目的是找到系统处理能力的极限

    2)  需要在给定的测试环境下进行,也需要考虑被测试体系统的业务压力量和典型场景,使得测试结果具有业务上的意义

    3)  一般用来了解系统的性能容量,或是配合性能调优来使用。

    3、  压力测试(stress testing):这种方法测试系统在一定饱和状态下,系统能够处理的会话能力,以及体系学统是否会出现错误。

    这种性能测试方法具有以下特点

    1)      它的主要目的是检查系统处于压力情况下时,应用的表现

    2)      一般通过模拟负载等方法,使得系统的资源使用达到较高的水平

    3)      一般用于测试系统的稳定性

    4、  配置测试(configuration testing):通过对被测系统的软/硬环境的调整,了解各种不同环境对系统性能影响的程度,从而找到体系统各项资源的最优分配原则。

    这种方法的特点有:

    1)  它的主要目的是了解各种不同因素对系统性能影响的程度,从而判断出最值得进行的调优方法。

    2)  一般在对系统性能状况有一定的了解后进行

    3)  一般用于性能调优和规划能力

    5、  并发测试(concurrency testing):通过模拟用户的并发访问,测试多用户并发访问同一个应用、同一模块或者数据记录时是否存在死锁或者其它性能的问题

    1)  主要目的是发现系统中可能隐藏的并发访问时的问题

    2)  主要关注系统可能存在的并发问题,例如系统中的内存泄漏、死锁等方面的问题

    3)  这种方法可以在开发的各个阶段使用,需要相关的测试工具的配合和支持

    6、  可靠性测试(reliability testing):软件的可靠性包含很多的内容,比如:成熟性、容错性等等,但这里所说的可靠性测试主要是指通过给系统加载一定的业务压力的情况下,让应用持续运行一段时间,测试系统在这种条件下是否能够稳定运行。

    它的特点有:

    1)  主要目的是验证系统是否支持长期稳定的运行

    2)  需要在压力下持续一段时间的运行

    3)  需要关注系统的运行状况

    7、  失效恢复测试方法(failover testing):它主要是针对有冗余备份和负载均衡的系统设计的。它可以人用来检验如果系统局部发生故障,用户是否能够继续使用系统;以及如果这种情况发生,用户将受到多大程度的影响。

    它的主要特点有:

    1)  主要目的是验证在局部故障情况下,系统能否继续使用。

    2)  这种性能测试方还需要指出,当问题发生时“能支持多少用户访问”的结论和“采取何种应急措施”的方案

    3)  一般来说,只有对系统持续运行指标有明确要求的系统才需要进行这种类型的测试

  • 性能测试应用领域及所使用的测试方法

    2007-02-07 14:35:07

    性能测试的应用领域可以分为能力验证、能力规划、性能调优和缺陷发现

    1、  能力验证,它是经常用到的应用领域,它与性能测试很接近,要有已确定的环境下运行,要根据典型场景设计测试方案和用例,能力验证一般采用performance testing方法,还可以用其它的测试方法:reliability testingstress testing failover testing的方法

    2、  规划能力,它与能力验证领域不同,能力验证关心的是在给定条件下,系统能否具有预期的能力表现,而规划能力应用关心的是应该如何才能使系统具有我们要求的性能能力。或是在某种可能发生的条件下,系统具有如何的性能能力。规划能力应用领域的问题常常是“某系统能否支持未来一段时间内的用户增长或是应该如何调整系统配置,使系统能够满足增长的用户数的需要”

    常用的测试方法有:负载测试、配置测试和压力测试

    3、  性能调优,主要对系统性能进行调优,可以在不同的测试阶段和场合下使用,不同的环境调优关注的内容也不同,比如对已经在实际的生产环境上的应用系统来说,对其进行调优首先关注的是应用系统部署环境的调整,对开发中的应用来说,更多的关注应用逻辑的实现方法、算法、数据库访问层的设计因素。

    一个标准的性能调优过程如下:

    1、  确定基准环境、基准负载和基准性能指标

    2、  调整系统运行环境和实现方法,执行测试,这是性能调优过程中的核心步聚,对一个应用系统来说,主要做硬件环境、系统设置和应用级别三个方面的调整

    3、  记录测试结果,进行分析

      性能调优使用的主要测试方式有:配置测试、负载测试、压力测试和失效恢复测试

    4、  缺陷发现,主要目的是通过性能测试的手段来发现系统中存下的缺陷。它一般可以作为系统测试阶段的一种补充测试手段,在测试过程中发现并发时的应用问题,或是作为在系统维护阶段的问题定位手段,对系统运行过程中已经出现的问题进行重现和定位

    缺陷发现一般采用并发测试方支,如果还需要关注压力失效恢复过程中出现的问题,还可以采用压力和失效恢复方法。

  • 软件性能的几个主要术语

    2007-02-06 16:08:44

     

    接触过软件性能测试的人,会经常听到响应时间、并发用户数、吞吐量、性能计数器、思考时间等这样的术语,网上也有这方面的讨论,总觉得都是似明白似不明白的,现将我对他们的理解写出来,和大家分享一下,还望各位多指教:

    1、  响应时间,响应时间是对用户请求作出响应所需要的时间,它可以划分为两个部分,一是呈现时间、二是系统响应时间,其中呈现时间取决于数据在被客户端收到响应数据后呈现页面所消耗的时间,而系统响应时间指应用系统从请求发现开始到客户端接收到数据所消耗的时间。在一般性能测试中,一般不关注呈现时间,这是因为呈现时间在很在程度上取决于客户端的表现。如果一台内存不足的客户端机器在处理复杂页面的时候,其呈现时间可能就很长,而这并不能说明整个系统的性能。

    为了能更好定位性能瓶颈的所在,还可以对响应时间再进一步分解,它是由网络传输时间和数据处理时间(也叫应用延迟时间)。

    需要说明一点是,对客户来说,响应时间能否被接受是一带有一定的主观色彩,它的时间长短没有绝对区别,所以在进行性能测试的时候,合理的响应时间取决于实际的用户需求,而不能依据测一群群人员自已的设想来决定

     

    2、  并发用户数:从客户端角度是理解,它是在同一个时间内访问系统的用户数量,也就是说如果性能测试的目标是验证当前系统能否支持现有用户的访问,最好的办法就是弄清楚会有多少用户会在同一个时间段内访问被测试的系统。通过测试了解到当系统处于该用户量的访问时,会具有怎么的性能表现。从服务器端承受的压力考虑,它是同时向服力器端发出请求的客户数,一般结合并发测试使用,体现的是服务端承受的最大并发访问数。在实际的性能测试中,要搞清与并发用户数相关的概念,系统用户数(该体系统的使用用户数)和同时在线用户人数,

    3、  吞吐量:是指单位时间内系统处理的客户请求的数量,直接体现软件系统的性能承载能力。一般来说,吞吐量用请求数/秒或是页页数/秒来衡量,从业务的角度,吞吐量也可以用访问人数/天或是处理的业务数/小时等单位来衡量,从网络的角度来说,也可以用字数/天来考察网络流量。

    对于交互式应用来说,吞吐量指标反映的是服务器承受的压力。在容量规划的测试中,吞吐量是一个重点关注的指标,因为它能够说明系统级别的负载能力;另外,在性能调优的过程中,吞吐量指标也有得要的价值。吞吐量指档可以在两个方面发挥作用:

    1)  用于协肋设计性能测试场景,以及衡量性能测试场景是否达到了预期的设计目标:在设计性能测试场景时,吞吐量可被用于协助设计性能测试场景,根据估算的吞吐量数据,可以人对应到测试场景的事务发生频率、事务发生次数等;另外,在测试完成后,根据实际的吞吐量可以衡量测试是否达到了预期的目标。

    2)  用于协助分析性能瓶颈:吞吐量的限制是性能瓶颈的一种重要表现开式,因此有针对性地对吞吐量设计测试, 可以协助尽快定位到性能瓶颈所在的位置。

    4、  性能计数器:是描述服务器或操作系统性能的一些数据指标。例如:对windows系统来说,使用内存数(Memory In Usage)就是常见的计数器。

    计数器在性能测试中发挥着“监控和分析”的关键作用,尤其是在分析系统的可扩展性、进行性能瓶颈的定位时,对数器取值的分析非常关键。 与性能计数器相关的另一个术语是“资源利用率”。它指的是系统各种资源的使用状况。为了方便比较,一般用“资源的实际使用/总的资源可用量”形成资源利用率的数据,用以进行各种资源使用的比较。

    5、  思考时间:从业务的角度来说,在这个时间指的是用户在进行操作时,第个请求这间的间隔。从自动化测试实现的角度来说,要真实地模拟用户操作,就必须在测试脚本中让各个操作之间等待一段时间,体现在脚本中,具体而言,就是在操作之间放置一个Thinktime的函数,使得脚本在执行两个操作之间等待一段时间。

221/212>
Open Toolbar