拥有多年互联网和银行系统性能测试开发经验,对性能瓶颈诊断定位和优化领域有较多研究。 重回互联网行业,性能测试开发、自动化测试开发、Java开发

发布新日志

  • 阿里搭建分布式测试环境和批量性能测试的思路

    2013-01-16 17:10:54

    转:

    Python + abench

    背景

      在搜索引擎的测试过程中,经常会遇到以下两个问题:

      ● 需要搭建和更新分布式测试环境

      ● 在性能测试时,我们需要测试不同集群规模和配置下的环境时,如何自动更新测试环境和批量进行性能测试

      因此,我们需要设计一个脚本,这个脚本可以帮我来完成这些事。

      在这里,我推荐使用Python,理由有:

      ● 写起来比较快(测试时间本来就比较紧张),不可能用C或者Java了

      ● 语法比较清晰,Shell、Perl这些维护起来太乱

      ● 自带的库、第三方的库比较丰富

      ● 另外,我个人比较喜欢Python的mako模版引擎和paramikossh2库。

      其实不用paramiko也可以,只要把机器ssh打通就可以。但我个人不太喜欢这种方式,觉得耦合性太强(只能在Linux下运行了)。

      设计

      批量性能测试的设计

      我很喜欢采用YAML格式,YAML格式的一大好处就是可以很方便的定义List、Map等类型

     

    在阿里的搜索平台这边,我们大多使用abench作为性能测试工具,它是一个命令行工具,只要命令+参数就可以了,比起JMeter要写JMeter脚本简单。因此,我再在配置文件中设计一下abench的命令格式。

      因为在运行命令中,有很多参数需要替换成上述测试用例设定的参数,因此需要采用模版引擎的方式。Python的模版引擎很多,我个人比较推荐mako。

  • PT 环境:查看应用系统和数据库系统信息globaltoken

    2012-12-10 15:17:16

    Step1:
    用Putty remote login 应用服务器App378
     
    Step2: Run command line
     view /opt/globaltoken/common-cfg-tokenValue.properties
     
    Step3: Search DB 连接信息
     
    完成
  • 在路由上发布公司端口服务

    2009-07-23 19:05:21

    亲自配置了Juniper NetScreen-5GT 防火墙 + 路由, 和 syslink RV082 + VPN


    NetScreen系列产品,是应用非常广泛的NAT设备。NetScreen-100就是其中的一种。
    NetScreen-100是个长方形的黑匣子,其正面面板上有四个接口。左边一个是DB25串口,右边三个是以太网网口,从左向右依次为Trust Interface、DMZ Interface、Untrust Interface。其中Trust Interface相当于HUB口,下行连接内部网络设备。Untrust Interface相当于主机口,上行连接上公网的路由器等外部网关设备;两端口速率自适应(10M/100M)。DMZ Interface介绍从略。

    配置前的准备
    1.   PC机通过直通网线与Trust Interface相连,用IE登录设备主页。设备缺省IP为192.168.1.1/255.255.255.0,用户名和密码都为netscreen ;
    2.   登录成功后修改System 的IP和掩码,建议修改成与内部网段同网段,也可直接使用分配给Trust Interface的地 址。 修改完毕点击ok,设备会重启;
    3.  把PC的地址改为与设备新的地址同网段,重新登录,即可进行配置
    4.  也可通过串口登录,在超级终端上通过命令行修改System IP

    数据配置
    数据配置包括三部分内容:Policy、Interface、Route Table。
    1.  配置Policy
    用IE登陆NetScreen,在配置界面上,依次点击左边竖列中的Network–〉Policy,然 后选中Outgoing。如系统原有的与此不同,可点击表中最后一列的Remove来删除掉,然后点击左下角的New Policy, 重新设置。
    2.  配置Interface
    在配置界面上,依次点击左边竖列中的Configure–〉Interface选项,则显示如下所示的配置界面,其中主要是配置Trust Interface、Untrust Interface,必要时修改System IP。

    在 Interface配置图当中;
    说明:
    1.  Trust Interface下面的Inside IP,即指端口本身的IP。因为该端口是设备用以与局域网内部相连的,所以就相当于是设备对内的端口,故此把该端口的IP 就叫做设备的Inside IP。同理,Untrust Interface下面的Outside IP也是指该端口的IP ,因为该端口是面向局域网外部的;Trust Interface下面的Default Gateway,指局域网内部与Trust Interace相连的设备的接口的地址。在本例中即是上行口的地址。Untrust Interface下面的Default Gateway是指外出上公网的网关地址(即NAT的下一跳),本例中指与NAT相连的路由器的接口地址
    2.  在接口的配置选项中,Traffic Bandwidth选项是对该端口传输带宽的描述,不用设置。因为两端口都是自适应的,会根据所连对端端口的带宽而自动调整。
    3.  在Enable的选项中,Trust Interface端口按照缺省的选择即可。而Untrust Interface因为面对公网,为安全起见,应当把ping、telnet等性能屏蔽掉, 不要选择。只有当有必要进行远程维护时,才把telnet选中。
    4.  对于System IP,当第一次登录后把它修改为与Trust Interface或Untrust Interface的IP 在同一网段,则用户就只能从Trust Interface或Untrust Interface登录。为了实现从两个端口都可登陆,以便管理,需要在上述界面上把System IP 的值改为0.0.0.0
    5.  Untrust Interface和Trust Interface配置内容完全一样,上面的例图由于是用PrtSc屏拷下来的,不能把Untrust Interface的配置内容拷全,特此说明。
    3.  配置Route Table
    在配置界面上,依次点击左边竖列中的Configure –〉Route Table选项,则显示图5所示界面。

    系统要正常运行,在NAT内部有两条路由是必不可少的,一条是去内部网段下面的用户网段的 路由,其网关是与NAT相连的接口的地址。该路由为:10.10.0.0 255.255.0.0 10.100.0.1 Trust ;另一条是去外部公网的缺省路由,其网关是与NAT 相连的外部路由器的接口地址。该路由为: 0.0.0.0 0.0.0.0 202.99.6.193 Untrust。

    从路由表中可以看出,后一条路由是系统缺省自动生成的,所以只需手工添加的第一条路由。点击界面左下角的New Entry创建新的路由。对于已生成的路由,可以通过点击Edit、Remove进行修改或删除。
    至此,所有配置全部完成。

     netscreen 配置文档
    1、进入字符配置界面:
      用随机带的CONSOLE线,一头接计算机串口,一头接E1端口,在计算机上打开超级终端进行配置,用户名,密码都是netscreen。

    2、进入WEB配置界面:
      用交叉网线连接E1和计算机的网卡,将计算机IP改成192.168.1.2(与E1端口在同一网段)。打开IE浏览器输入http:/192.168.1.11(192.168.1.11为E1端口管理IP),用户名,密码都是netscreen。       

    3、配置端口IP和管理IP:
    E1:内部网端口
    端口IP192.168.1.20和管理IP192.168.1.11
       更改为当地内部网的IP地址,E1的端口IP设为当地内部网网关,管理IP用于在内部网管理netscreen防火墙。

    E3: 外网端口
    端口IP192.168.42.66和管理IP192.168.42.68
       更改为当地电信所分配的IP地址,E3的管理IP用于外网管理者在INTERNET上配置和管理netscreen防火墙。


    4、配置由内网到外网的NAT:
    在E3端口上配置NAT,用于将内部网地址转换成当地电信所分配的公网IP地址,以便访问INTERNET信息。

    1. Network > Interfaces > Edit(对于ethernet1):输入以下内容,然后单击OK:
    Zone Name: Trust
    IP Address/Netmask: 172.16.40.11/24(当地内部网网关IP)

    2. Network > Interfaces > Edit(对于ethernet3):输入以下内容,然后单击OK:
    Zone Name: Untrust
    IP Address/Netmask: 215.3.4.11/24(当地电信所分配的IP地址)。

    3. Network > Interfaces > Edit(对于ethernet3)> DIP > New:输入以下内容,然后单击OK:
    ID: 6
    IP Address Range
    Start: 215.3.4.12(当地电信所分配的IP地址)
    End: 215.3.4.210(当地电信所分配的IP地址,这是一个地址池,可大可小)
    Port Translation: Enable

    4. Policies > (From: Untrust, To: Trust) > New:输入以下内容,
    然后单击OK:
    Source Address:
    Address Book: (选择) , Any
    Destination Address:
    Address Book: (选择) , Any
    Service: Any
    Action: Permit
    > Advanced: 输入以下内容,然后单击Return,设置高级选项并返回基本配置页:
    NAT: On
    DIP On:(选择) , 6 (215.3.4.12–215.3.4.210):上一步设的地址池。

    5、配置由外网到内网的VIP:
    在E3端口上配置VIP,可将一个外网IP和端口号对应到一个内网IP。通过这种方法可以将WEB服务器,邮件服务器或其他服务放到内网,而从外网只看到一个公网IP,增加安全性。

    1. Network > Interfaces > Edit(对于ethernet1):输入以下内容,然后单击Apply:
    Zone Name: Trust
    IP Address/Netmask: 10.1.1.1/24(当地内部网网关IP)

    2. Network > Interfaces > Edit(对于ethernet3):输入以下内容,然后单击OK:
    Zone Name: Untrust
    IP Address/Netmask: 210.1.1.1/24(当地电信所分配的IP地址)

    VIP
    3. Network > Interfaces > Edit(对于ethernet3)> VIP:输入以下地址,然后单击Add:
    Virtual IP Address: 210.1.1.10(对外的服务器地址)

    4. Network > Interfaces > Edit(对于ethernet3)> VIP > New VIP Service:输入以下内容,然后单击OK:
    Virtual Port: 80
    Map to Service: HTTP (80):(此例为WEB服务器的配置,如果是其他的服务器,就加入其服务与对应的端口号)
    Map to IP: 10.1.1.10(此为服务器本身IP,内网IP)

    策略
    5. Policies > (From: Untrust, To: Global) > New:输入以下内容,然后单击OK:
    Source Address:
    Address Book:(选择), ANY
    Destination Address:
    Address Book:(选择), VIP(210.1.1.10):对外服务器地址
    Service: HTTP(WEB服务器选项)
    Action: Permit

  • Linux测试环境搭建笔记

    2008-08-26 19:00:15

    3.1,安装JDK 1.6

    3.2查看是否安装

     

    3.3/etc/profile  文件中加入以下环境变量

    JRE_HOME=/usr/java/jdk1.6.0_01

    JAVA_HOME=/usr/java/jdk1.6.0_01

    CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:

    PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

    export PATH JAVA_HOME CLASSPATH

    3.4使用配置生效:

    (source命令( C Shell 而来)bash shell的内置命令。点命令,就是一个点符号,(Bourne Shell而来)source的另一名称。这两个命令都以一个脚本为参数,该脚本将作为当前shell的环境执行,即不会启动一个新的子进程。所有在脚本中设置的变量将成为当前Shell的一部分。同样的,当前脚本中设置的变量也将作为脚本的环境,source(或点)命令通常用于重新执行刚修改的初始化文件,如 .bash_profile .profile 等等。例如,如果在登录后对 .bash_profile 中的 EDITER TERM 变量做了修改,则可以用source命令重新执行)

    #source /etc/profile

     

    四,安装MYSQL 5.1

    查看是否安装

    1、 rpm qa |grep MySQL

    2、 rpm q MySQL-client

    3、 mysql

    4、 rpm q mysql

     

    五,安装tomcat /opt/

    Tar zxvf tomcat-6.0.16.tar.gz C /opt/

    查看

    #ls /opt/

     

     

     

    六,解压:ROOT.zip:  

    6.1 Rm –rf*

    [root@...apache-tomcat-/webapps]unzip /opt/data/ROOT.zip

    ROOT.zip 文件copy /opt/tomcat-6.0.16/webapps/

    #cd /opt/tomcat-6.0.16/webapps/

    #cp /opt/data/ROOT.war /opt/tomcat-6.0.16/webapps/

       

    6.2.将weblogic.jar   mysql-connect-5.0.4.jar  拷进tomcat-6.0.16/lib 下面。

       

     

    : 目前因为程序问题, 需要删掉weblogic.jar

        rm -rf lib/weblogic.jar

    七,新建数据库:

    7.1,登录数据库:输入mysql –u root 回车

     

    7.2,新建数据库

    #create database nuev default character set utf8;

    7.3,为数据库新建用户:

    (#grant all on nuev.* to spider01@% Identified by spider;)

    #grant all on *.* to nuve@% Identified by password

     

    (#grant all on nuev.* to spider01@localhost Identified by spider;)

    Grant all on nuve.* to nuve@localhost Identified by 123456

     

    7.4,将数据导入数据库:

    #use nuev;

    #source /opt/data/nuev.sql

    “注意:查看是否已经建立存储过程,如果没有,重新执行一次sql脚本”

    (查看是否存在存储过程)--双击打开prc_page_regsult内容.

     

     

    7.5,输入exit 退出

    八,启动tomcat

    #cd /opt/tomcat-6.0.16

    #./bin/startup.sh

Open Toolbar