qileilove

blog已经转移至github,大家请访问 http://qaseven.github.io/

LoadRunner穿越防火墙测试

  Loadrunner穿越防火墙测试
  首先提出一个问题:什么时候使用穿越防火墙技术?
  答:当Controller位于防火墙外时,您可以穿越防火墙运行Vuser并监控服务器。
  为什么使用穿越防火墙技术?
  答:当服务真正部署时都会使用硬件防火墙来增强网络的安全性,我们很多时候不能将测试计算机与被测服务器置于同一局域网内,但为了降低网络传输对性能测试的影响,我们通常要使用防火墙内的负载生成器对服务器进行性能测试,此时防火墙外的Controller与防火墙内的负载生成器的连接便成了问题,所以我们使用穿越防火墙技术使之建立连接。
  好下面开始介绍穿越防火墙的原理:
  在部署的项目中使用防火墙意味着可以在特定的端口号上防止对专用网络或从专用网络进行未经授权的访问。例如,您可以指定无法从外界访问除邮件端口(23)以外的任何端口,您也可以指定除邮件端口和Web端口(80)以外的任何端口都没有外部连接。端口设置是由系统管理员配置的。
  在常规LoadRunner场景(不穿越防火墙)中,Controller可以直接访问在远程计算机上运行的LoadRunner代理。这使Controller可以直接连接到那些计算机。
  当穿越防火墙运行Vuser或监控服务器时,这一直接连接将被防火墙阻断。Controller无法建立该连接,因为它没有在防火墙中打开端口的权限。使用基于HTTPS或安全TCP/IP(使用防火墙上的标准SSL端口[端口443])的通信机制,LoadRunner可以解决此问题。LoadRunner代理安装在防火墙内运行Vuser的负载生成器计算机上,或为要监控的服务器充当中介(称为“介体”)的代理计算机上。该代理通过防火墙上的端口443与Mercury Interactive侦听器计算机和MI侦听器进行通信。
  那么Loadrunner代理如何穿过防火墙与MI监听器进行联系的呢?
  第一步:loadrunner代理初始化通过端口443到MI侦听器的连接(见下图)
  当LoadRunner代理与MI侦听器进行连接时,MI侦听器将记录有关使用该代理传递给它的符号名连接到该代理的信息。Controller连接到MI侦听器后,将通过端口50500与MI侦听器进行通信。
  第二步:Controller通过端口50500连接到MI侦听器(见下图)
  Controller将使用代理的符号名,并给出MI侦听器计算机的名称。如果已经存在一个连接,从具有相同符号名的代理连接到此MI侦听器,则说明该连接已经建立。连接到该代理后,您就可以穿越防火墙运行或监控Vuser。
  第三步:Controller和代理相连接(见下图)
  Controller和loadrunner代理都通过MI监听器进行联络。
  以上说明了Controller和loadrunner代理都通过MI监听器的联系方式,在第二篇文章中我们介绍如何设置穿越防火墙。
  配置穿越防火墙的方法主要分以下几步:
  1、在防火墙内运行Vuser的计算机上或要监控的服务器上安装LoadRunner代理。
  要穿越防火墙运行Vuser,则防火墙内运行Vuser的负载生成器计算机上必须安装LoadRunner代理。该代理可作为Windows服务或作为从Startup文件夹中运行的可执行程序添加
  要检查是否已安装,请选择:“开始”>“程序”>“Mercury LoadRunner”>“LoadRunner代理服务/进程”。
  如果“代理服务”或“代理进程”出现在LoadRunner选项的列表上,则表示已经安装了该代理。
  2、将LoadRunner代理配置为穿越防火墙进行操作。
  防火墙内的计算机可以是运行Vuser的负载生成器计算机,也可以是连接到Controller要监控的服务器的介体计算机。您可以将防火墙内的LoadRunner代理配置为可以穿越防火墙进行操作。Controller计算机位于防火墙之外。
  A、单击“开始”>“程序”>“Mercury LoadRunner”>“高级设置”运行“代理配置”,或者运行<LoadRunner根文件夹>\launch_service\bin\AgentConfig.exe。
  B、选中“启用防火墙代理”复选框,然后单击“设置”。
 C、按照如下值设置:
  选项
  默认值
  描述
  MI侦听器名
  无
  Mercury Interactive侦听器计算机(MI侦听器)的名称、全名或IP地址。
  本地计算机密钥
  无
  一种符号字符串描述符,用于通过MI侦听器计算机在位于防火墙后的Controller主机和代理计算机之间建立唯一连接。
  连接超时(秒)
  20秒
  您希望代理在重新尝试连接到MI侦听器计算机之前所等待的时间长度。如果是零,连接将从代理开始运行起一直保持打开状态。
  MI侦听器用户名
  无
  连接到MI侦听器计算机时所需的用户名。
  MI侦听器密码
  无
  连接到MI侦听器计算机时所需的密码。
  服务器域
  无
  连接到MI侦听器计算机时所需的域名。只有使用NTLM时才需要此字段。
  连接类型- TCP/HTTP
  TCP
  根据所使用的配置选择TCP或HTTP。
  连接类型- HTTP
  代理服务器名
  无
  代理服务器的名称。如果“连接类型”选项为“HTTP”,则此选项为强制选项。
  连接类型- HTTP
  代理服务器端口
  无
  代理服务器连接端口。如果“连接类型”选项为“HTTP”,则此选项为强制选项。
  连接类型- HTTP
  代理服务器用户名
  无
  具有连接到代理服务器权限的用户的用户名。
  连接类型- HTTP
  代理服务器密码
  无
  用户的密码。
  连接类型- HTTP
  代理服务器域
  无
  如果在代理服务器配置中进行了定义,则为用户的域。只有使用NTLM时才需要此选项。
  使用安全连接(SSL)
  禁用
  使用安全套接字层协议启用连接。
  使用安全连接
  (SSL) -检查服务器证书
  无
  验证由服务器发送的SSL证书。选择“中”可以验证服务器证书是否已由授权的证书颁发机构签名。选择“高”可以验证发件人IP是否与证书信息相符。只有将“使用安全连接”设置为“True”时,此设置才可用。
  使用安全连接
  (SSL) -私钥密码
  无
  在SSL证书身份验证过程中可能需要的密码。此选项只有在启用了“客户端证书所有者”选项后才有意义。
  使用安全连接
  (SSL) -使用客户端证书
  禁用
  启用此选项可以载入SSL证书(如果服务器要求允许进行连接)。只有启用了“使用安全连接”选项后,此选项才有意义。
  3、配置防火墙。
  将防火墙配置为允许防火墙内的代理与防火墙外的计算机之间进行通信。
  tcp配置:LoadRunner代理将尝试使用端口443与MI侦听器建立连接。要建立此连接,需要启用防火墙的端口443上的HTTPS服务的传出连接。这样,代理将在代理配置的“连接超时”字段中指定的时间间隔(以秒为单位)内连续尝试与MI侦听器进行连接。成功连接后,MI侦听器将连接回代理。从这一刻起,代理将侦听来自MI侦听器的命令。
  HTTPS配置 :LoadRunner代理通过使用在“代理端口”字段中指定的代理端口来尝试与MI侦听器建立连接。要建立此连接,需要启用防火墙的端口443上的HTTPS服务的传出连接。这样,代理将在代理配置的“连接超时”字段中指定的时间间隔(以秒为单位)内连续尝试与MI侦听器进行连接。成功连接后,代理服务器上的代理将连接到MI侦听器,而MI侦听器将通过代理服务器连接回代理。从这一刻起,代理将侦听来自MI侦听器的命令
  4、安装穿越防火墙进行监控组件(仅穿越防火墙进行监控)。
  要穿越防火墙监控服务器,需要在防火墙内的代理计算机上安装该组件。通过LoadRunner CD对LoadRunner进行自定义安装,仅选择“防火墙监控器”选项。
  5、在防火墙外的计算机上安装并配置MI侦听器。
  安装Controller时将自动包括MI侦听器,所以您可以将Controller
  MI侦听器只能安装在Windows计算机上。
  A、          单击“开始”>“程序”>“Mercury LoadRunner”>“高级设置”运行“MI侦听器配置”

posted @ 2014-08-18 10:10 顺其自然EVO 阅读(459) | 评论 (0)编辑 收藏

用JIRA来跟进和管理项目进度

  做迭代的测试master期间内,每周要出测试周报,这就需要统计迭代相关的数据,包括开发进度,测试进度,缺陷情况等,每次都需要去翻看保存的jira上的Filter,如果之前没有新建Filter的话,还需要新建一个过滤器,后来想想,其实可以利用jira上的dashboard来集中管理这些Filter,然后利用其共享功能,share出去,这样项目组的其他人都可以通过这一个dashboard看到整个项目的实时进度情况,同时给master和测试负责人、SQA以及项目负责人提供统计数据,及时控制项目/迭代风险。根据这个想法,我新建了一个迭代/项目进度管理模板,这样一个新的迭代或者项目,只要在迭代/项目开始设置一下Filter条件,整个项目过程中就可以“一劳永逸”了,下面说一下这个模板,以及如何得到相关数据(其实这点不用说,只要一看模板就懂了...):先给一个整体模板图
  下面来看细节:
  项目/迭代需求story列表及状态:
  从上面的途中可以一眼得到自己想要的任何信息,而不需要任何多余的设置和选择
  项目/迭代测试任务列表及状态:
  列表类似于需求story,这里就不贴图了
  缺陷列表及状态:
  新增需求列表:
  让迭代master和测试负责人头疼的不能及时知道需求变更的情况在这里可以得到缓解
  首先说一下,我们可以从模板上得到神马:
  1、 迭代/项目的需求数量、需求列表、开发进度;
  2、 迭代/项目的测试任务、测试进度、测试任务列表;
  3、 缺陷数量、缺陷解决情况、缺陷列表;
  4、 需求变更情况
  5、 模板中的内容(列表、统计图等所有信息),会根据项目情况实时自动更新的,不用作任何设置或变动(前提是开发和测试人员及时更新jira上的任务状态~~这个不为过吧,本来就应该做到的~)
  6、 导出报表(对出项目报告和测试周报等报告灰常方便,这个主要用于master、测试负责人、项目负责人、SQA)。
  然后说一下可以改良目前的哪些状况:
  1、 一个项目/迭代,只需要一个人(测试负责人或者master?)做一次配置更新,造福全项目/迭代的其他人;
  2、 项目/迭代里的任何人何以在任何时候了解到当前项目/迭代的开发和测试进度以及缺陷情况;
  3、 Master和测试负责人以及项目负责人、SQA可以及时账务需求变更情况,来更好的控制迭代/项目风险
  4、 导出报表,不用手动统计需求情况和测试任务等条目,节省大量时间
  5、 模板的通用性,可配置性
  1)前面说了,这是一个模板,每起一个新的迭代或项目,只要更新一下过滤条件,另存为一下就OK了,一个新的迭代/项目进度dashboard就出来了
  2)如果还想得到项目其他的一些信息,新建一个过滤器,保存在这个dashboard即可。
  以上说的就是就是如何利用jira进行项目管理,目前已经用于各个项目和迭代中,而且起到了很好的作用,至于如何用jira建立这样一个dashboard这里就不废话给出了,因为会用jira的人看了这篇文章几分钟就可以把这样一个项目或者迭代的dashboard建立好了~
  缺陷情况,实时更新的~

posted @ 2014-08-18 09:43 顺其自然EVO 阅读(9773) | 评论 (0)编辑 收藏

怎么的技能可以让软件测试工程师获得高薪?

 在某个地方看到的关于这个问题的探讨,发出来给大家分享下:
  怎么的技能可以让软件测试工程师获得高薪?
  首先,本人作为一名高级测试工程师及管理者讲讲自己的见解,如讲的不好请轻吐槽。
  软件测试技能,高薪这两个范围都很大。我们知道无论什么技能在一个专有的领域达到专业或者说非常牛叉的水平都能获得高薪。
  大体上,软件测试分为白盒测试黑盒测试
  目前国内大部分公司的白盒测试都是由开发人员完成(国内现状就是这样,如果我懂代码那么我为什么要做测试呢,我肯定做开发啊,因为开发薪水比测试高)。
  下面说黑盒测试,既然说到高薪,那么就不得不说性能测试,性能测试所需的技能大致包括对主流测试工具(Loadrunner,Jmeter等)的使用,这其中包含能读懂脚本,设计性能测试用例,性能测试结果分析(这两个是难点)。脚本语言包括Ruby,python,TCL等几种,如果都懂那么肯定你能拿高薪。
  其次就是功能测试,功能测试的工具QTPSelenium等。这其中当然也是包含能读懂脚本,这个脚本基本是C,java,VB等。
  另外的技能就是数据库的使用,SQL的基本语句要能达到滚瓜烂熟的程度(这是作为一名测试工程师必须要懂得)。
  那么纯黑盒测试不懂代码就不能拿高薪了吗?也不尽然,如果你设计测试用例巨牛叉,达到你设计的测试用例能验证出80%的bug,我想大部分老板都会乖乖的给你高薪的。
  测试的顶级是安全测试,这个领域本人也没涉及太多,所以技能方面只知道SQL注入,跨脚本攻击,Cookie劫持等基本的。
  另外的高薪就是做测试管理,测试经理和测试总监等职位,那么除了测试技能之外,管理技能也会占很大一部分。
  *****************************************************
  能够辨别问题的领导
  和有解决问题的决心的下属
  能有功者赏的企业文化和薪酬架构
  但往往上面的3者不可得兼,所以做好自己,跟对老大,还有就是那点运气了。
  *******************************************
  有一句话说的好 "不会开发的测试就好比不会游泳的海盗", 如果真心喜欢这个行业, 那么请精通1-2们语言吧. 因为:
  1. 学语言, 锻炼逻辑, 逻辑可用在工作
  2. 但凡更高的测试方法, 比如: 安全, 性能, 有效的分析方法前提还是语言
  ********************************************
  语言的学习是首要的,不过这个是死的东西,啃两三本书,作为测试写个几千行代码实践一下就可以了。必须要精通一门语言和SQL,对算法也要有一定的了解!
  除去上面的硬技能,个人觉得最关键的是测试的思想和解决问题的方法,这个没有一定的工作经验很难获得,平时多看看别人是怎么解决问题的,例如如何搭建一个自动化测试框架,如何写测试脚本。而这个也是高级工程师继续发展的一个瓶颈。
  **************************************************
  配置管理、自动化测试、性能测试、安全测试都能拿高薪。至于有多高那就看个人能力了。
  如果你能搞定十几个甚至几十个个项目的开发配置问题,能解决他们的持续集成的问题,高薪不是问题。
  如果你能设计测试框架,甚至开发测试工具,高薪也不是问题
  如果你能针对复杂系统设计性能测试方案,并能够对系统架构、中间件、数据库提出有效的调优建议,高薪也不是问题
  如果你是一个安全测试工程师,那本身就是高薪
版权声明:本文出自 风在吹 的51Testing软件测试博客:http://www.51testing.com/?windfly
原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。

posted @ 2014-08-18 09:41 顺其自然EVO 阅读(168) | 评论 (0)编辑 收藏

Web服务请求异步化测试

 Web服务异步化:
  包括两部分,数据传输层异步化(大家已经熟知的NIO),Http业务请求异步化(continuations,servlet3.0)。服务异步处理我将会有一个详细的说明文档(服务异步化的概念,服务异步化的几种标准实现,服务异步化容器的特点),后续给出。
  Web服务异步化测试原因:
  TOP应用特殊性:
  1.自身服务能力由后端的服务能力决定。(对同步Web请求的转发)
  2.后端服务部署等同性,但要求服务互不影响。
  第一点导致TOP无法预估自身服务能力(不同后端服务处理速度下的TOP有不一样的支持能力),同时也无法应对在后端服务异常的情况下,整体的服务质量。
  第二点导致TOP只有在物理上分隔不同服务提供者所对应的TOP集群(资源浪费,同时无法动态调整资源来满足服务变化情况)。
  因此需要对TOP实施web服务异步处理的测试。这里简单的说一下服务异步化的使用场景需要满足的几个特点:
  1. 处理耗时大多消耗在于对后端或者外部服务资源的请求上。
  2. 后端或者外部资源在更多的流量下不会成为瓶颈。
  拿TOP来解释一下:TOP自身处理主要包括路由,安全,流控等,但是最耗时的是在请求后端各个淘宝团队的服务。其次当前后端服务能力尚未达到真实的处理高峰,因此很多请求被堵在TOP平台,特别是当某些服务异常的时候,另一些服务就会被拖累无法得到充分利用。(当然我们有流控,发现后端服务能力已经成为瓶颈的时候可以对单独服务作限制)。
  长话短说,上测试结果……
  环境说明:
  Linux 2.6.9-55.ELsmp
  4 Core
  4 G Memory
  JDK 1.6.0_07
  测试工具:loadRunner 9.5
  测试涉及到了四种容器部署:后面都会用缩写在测试结果上注明
  1.       Apache + modjk + Jboss(后面缩写为Jboss):
  此模式Apache配置如下:
<IfModule mpm_worker_module>
ServerLimit          80
ThreadLimit          128
StartServers         10
MaxClients           10240
MinSpareThreads      64
MaxSpareThreads      800
ThreadsPerChild      128
MaxRequestsPerChild 10000
</IfModule>
  Jboss的web容器配置如下:
  <Connector port="8009" address="${jboss.bind.address}" connectionTimeout="8000" protocol="AJP/1.3" maxThreads="500" minSpareThreads="40" maxSpareThreads="75" maxPostSize="512000" acceptCount="300" bufferSize="16384" emptySessionPath="false" enableLookups="false" redirectPort="8443" URIEncoding="utf-8"/>
  Jboss的web部分以APR模式启动。
  2.       Tomcat6(APR)
  关键配置如下:
  <Executor name="topThreadPool" namePrefix="top-exec-"
  maxThreads="500" minSpareThreads="40"/>
  <Connector port="7777" protocol="HTTP/1.1"
  executor="topThreadPool" connectionTimeout="20000" acceptCount="1000"
  redirectPort="8444" />
  3.       Tomcat7 RC 4(APR)
  关键配置如下:
  <Executor name="topThreadPool" namePrefix="top-exec-"
  maxThreads="500" minSpareThreads="4"/>
  <Connector executor="topThreadPool" port="3333" protocol="HTTP/1.1"
  connectionTimeout="20000" acceptCount="1000"
  redirectPort="6443" />
  4.       Jetty7
  关键配置如下:
<Set name="ThreadPool">
<!-- Default queued blocking threadpool -->
<New class="org.eclipse.jetty.util.thread.QueuedThreadPool">
<Set name="minThreads">10</Set>
<Set name="maxThreads">500</Set>
</Set>
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
<Set name="host"><SystemProperty name="jetty.host" /></Set>
<Set name="port"><SystemProperty name="jetty.port" default="6060"/></Set>
<Set name="maxIdleTime">300000</Set>
<Set name="Acceptors">2</Set>
<Set name="statsOn">false</Set>
<Set name="confidentialPort">8443</Set>
<Set name="lowResourcesConnections">20000</Set>
<Set name="lowResourcesMaxIdleTime">5000</Set>
</New>
</Arg>
</Call>
附注:
  Asyn表示异步模式,syn表示同步。Asyn中还分成resume和complete两种方式,后续在介绍技术背景的时候详细描述。
  对于服务端的load不是每一个测试都做了记录,选取了最全面的1500并发用户做了测试。
  最大服务请求处理数是通过应用自身实现,具体代码可以参考后面的代码附件。
  测试结果如下:
  场景1:500 并发用户场景下,后端服务一次请求消耗3秒钟
  这个场景测试的目的是比较在线程池资源足够的时候,异步和同步的差别。(也就是TOP服务器所有的资源处于正常服务,前台请求没有因为前段连接被消耗完,导致服务质量降低)
  可以看到,在TPS和Response Time上两者基本上没有太大差别,TPS就等于500/3=167左右(3秒一个请求,因此用这种简单算式可以算出),响应时间也较为正常。当时我发现在每秒吞吐量上有些差别,后来单个测试case跑了一下,发现是返回的http header比较大,应该是在做异步化时重入等作的一些标识(后面其他容器的异步化也是一样)。
  最大处理请求数都在服务端后台看到是500,等同于最大的并发用户数。
  场景2:1000 并发用户场景下,后端服务一次请求消耗3秒钟
  场景2就在资源不足的情况下,比较异步服务请求与同步请求处理能力。(例如由于后端某些服务比较慢,导致前段的服务器能够承载的请求数目超过了线程数)
  这个场景的结果可以看到TPS在异步模式下与并发用户数呈现同步增长,就好比配置了1000个线程作为线程池一样,同样在后端打出的最大请求数上也证明了这一点,因此前段线程池的服务能力在异步的情况下充分复用(当然这里使用的异步服务处理使用的是NIO而不是BIO的Connector)。同样在吞吐量上依然是增加的,由于异步附加的内容。
  场景3:1500 并发用户场景下,后端服务一次请求消耗3秒钟
  场景三比对了现有TOP的部署模式(Apache + modjk + Jboss)和Jetty7的同步模式,两种异步模式,Tomcat同步模式,Tomcat的servlet3.0异步模式的处理情况。根据测试可以得到的信息如下:
  1.              现有部署方式在后端服务处理耗时较大的情况下,处理能力不如Jetty7和Tomcat6,同时出错率很高。
  2.              Jetty7的同步处理测试结果和Tomcat6的同步处理测试结果很类似,但是load方面jetty7更好。
  3.              异步处理方面Jetty7的两种方式基本上差别不大(后续还需要深入源码看看对于数据缓存资源复用的状况),Tomcat7的异步处理成功率有些问题(错误多半是在获取response回写的时候,response已经被提前释放,看来Tomcat7还是需要一些时间来考验),load上来说tomcat结果比较好。
  4.              异步请求在提高处理能力的情况下,对于资源消耗也较大(线程切换较为频繁),不过还是在承受范围。
  三个场景组合比较:
  最后将三个场景合并起来做一个简单的比较,得到信息如下:
  1.       随着并发用户的增加,本身异步处理也会有衰减,同时对于性能消耗(线程切换)也会不断增长。
  2.       异步化在消息头上会增加一些数据,会增加回写的带宽消耗(不过量不大),一个请求增加了100byte左右的消息数据。
  测试总结:
  1.       Web请求异步化在TOP很合适。
  重复两个条件:
  a.       处理耗时大多消耗在于对后端或者外部服务资源的请求上。
  b.       后端或者外部资源在更多的流量下不会成为瓶颈。
  2.       Web请求异步化在Jetty6到7上已经经历了2年多的成长(Google App Engine , Yahoo Hadoop),稳定性和效率较好。(同时很多优化可以通过扩展自行定制,jetty的可扩展性很好)Tomcat7在servlet3上处于刚发布阶段,还有待继续完善。(Servlet3的另一种模式尚未执行成功,直接导致jvm退出)
  后续需要继续跟进的:
  1.       对于大数据量请求的容器间性能对比。(图片上传或者大数据量的Post请求)
  2.       容器安全性。(是否容易被攻击)
  3.       代码迁移成本。

posted @ 2014-08-18 09:39 顺其自然EVO 阅读(482) | 评论 (0)编辑 收藏

Android单元测试方法与步骤

 一、修改配置文件AndroidManifest.xml
<? xml version="1.0" encoding="utf-8" ?>
< manifest  xmlns:android ="http://schemas.android.com/apk/res/android"
package ="cn.ycmoon.test.activity"  android:versionCode ="1"
android:versionName ="1.0" >
< uses-sdk  android:minSdkVersion ="8"   />
< application  android:icon ="@drawable/icon"  android:label ="@string/app_name" >
< uses-library  android:name ="android.test.runner"   />
< activity  android:name =".MainActivity"  android:label ="@string/app_name" >
< intent-filter >
< action  android:name ="android.intent.action.MAIN"   />
< category  android:name ="android.intent.category.LAUNCHER"   />
</ intent-filter >
</ activity >
</ application >
< instrumentation  android:name ="android.test.InstrumentationTestRunner"
android:targetPackage ="cn.ycmoon.test.activity"  android:label ="Testing"   />
</ manifest >
  说明:1、在Application节点中Activity前添加   <uses-library android:name="android.test.runner" />
  2、在Application节点的添加  <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="cn.ycmoon.test.activity" android:label="Testing" />
  二、在相应包中编写要完方法,
  三、在src同级级目录中添加一个test文件夹[可自定义],并在下建立和项目一致的包名: cn.ycmoon.test.activity
  四、在要进行单元测试的方法上右键->NEW->JUNIT Test Case。弹出下界面:
  选择 SuperClass为:
 点击下一步,选择要测试的方法:
  点击完成。
  将新产生的单元测试的类放入test/项目包名下。
  在单元测试方法中添加实现:
  展开test/cn.ycmoon.test.activity下单元测试类,选择要测试的方法,点右键,选择Run As->Android JUnit Test,就会打开单元测试结果界面。
  右该方法无错误,则结果会显示绿色状态条:
 

posted @ 2014-08-18 09:34 顺其自然EVO 阅读(424) | 评论 (0)编辑 收藏

Web应用软件功能测试

 功能测试主要用来测试Web应用软件是否履行了预期的功能,包括链接测试、表单测试、设计语言测试、数据库测试、Cookies测试等。
  (1)链接测试
  链接是Web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段。链接测试可分为三个方面。首先,测试所有链接是否按指示的那样确实链接到了该链接的页面;其次,测试所链接的页面是否存在;最后,保证Web应用系统上没有孤立的页面,所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问。链接测试可以自动进行,现在己经有许多工具可以采用。链接测试必须在集成测试阶段完成,也就是说,在整个Web应用系统的所有页面开发完成之后进行链接测试。
  (2)表单测试
  当用户给Web应用系统管理员提交信息时,就需要使用表单操作,例如用户注册、登录、信息提交等。在这种情况下,我们必须测试提交操作的完整性,以校验提交给服务器信息的正确性。例如:用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等。如果使用了默认值,还要检验默认值的正确性。如果表单只能接受指定的某些值,则也要进行测试。例如:只能接受某些字符,测试时可以跳过这些字符,看系统是否会报错。
  (3)Cookies测试
  Cookies通常用来存储用户信息和用户在某Web应用系统的操作,当一个用户使用Cookies访问了某一个应用系统时,Web服务器将发送关于用户的信息,把该信息以Cookies的形式存储在客户端计算机上,这可用来创建动态和自定义页面或者存储登录等信息。如果Web应用系统使用了Cookies,就必须检查Cookies是否能正常工作。测试的内容可包括Cookies是否起作用,是否按预定的时间进行保存,刷新对Cookies有什么影响等。
  (4)设计语言测试
  Web设计语言版本的不同会引起客户端或服务器端比较严重的问题,例如使用哪种版本的HTML等。当在分布式环境中开发时,开发人员都不在一起,这个问题就显得尤为重要。除了HTML的版本问题外,不同的脚本语言,例如Java、JavaScript、ActiveX、VBScript或Perl等也要进行验证。
  (5)数据库测试
  在Web应用技术中,数据库起着重要的作用,数据库为Web应用系统的管理、运行、查询和实现用户对数据存储的请求等提供空间。在Web应用中,最常用的数据库类型是关系型数据库,可以使用SQL对信息进行处理。在使用了数据库的Web应用系统中,一般情况下,可能发生两种错误,分别是数据一致性错误和输出错误。数据一致性错误主要是由于用户提交的表单信息不正确而造成的,而输出错误主要是由于网络速度或程序设计问题等引起的,针对这两种情况,可分别进行测试。

posted @ 2014-08-18 09:32 顺其自然EVO 阅读(163) | 评论 (0)编辑 收藏

Win7下的内置FTP组件的设置详解

 在局域网中共享文件,FTP是比较方便的方案之一。Win7内部集成了FTP,只是设置起来颇费一番功夫。着文以记之。

  一、安装FTP组件

    由于Win7默认没有安装FTP组件。故FTP的设置第一步就是安装FTP组件

    点击:控制面板—》程序和功能—》打开或关闭Windows功能。勾选“FTP服务器”及“FTP服务”“FTP扩展性”,点击“确定”,安装FTP组件。如下图所示

    

  二、添加FTP站点

    点击:控制面板—》管理工具。选中“Internet信息服务(IIS)管理器”,如图

    

    双击“Internet信息服务(IIS)管理器”。弹出管理器界面,如下图所示:

    

    单击选中“网站”,并且在其上右击,选择“添加FTP站点”,出现“站点信息”界面,如下所示:

    

    给FTP取名(本例是:zhu),以及设置FTP站点的物理路径(本例是:c:\ftp),点击“下一步”,出现“绑定和SSL设置”界面,如下图所示

    

    IP设置为本机的IP地址,端口用FTP默认的21,SSL勾选“无”。点击“下一步”,出现“身份验证和授权信息”界面,如下图所示:

    

    如果只是想设置简单的FTP,则“身份验证”和“授权”都勾选“匿名”,并且给匿名设置相应的权限。本例中,还要给FTP配置帐号,以及帐号的权限,故“身份验证”勾选“基本”,“授权”勾选“未选定”,点击“完成”,完成FTP站点的设置。

  三、设置FTP帐号以及权限

    由于Win7下的FTP帐号是Windows用户帐号。所以,先得添加两个用户帐号,一个是View,可以浏览、下载FTP内容;一个是Admin,完全控制FTP。

    点击:控制面板—》管理工具—》计算机管理。在计算机管理的界面的左侧,点击:系统工具—》本地用户和组—》用户,右侧显示所有用户。如下图所示:

    

    在“用户”上右击,出现“新用户”,如下所示:

    

    在用户名中输入View,设置好密码,去掉勾选“用户下次登陆时须更改密码”,勾选“用户不能更改密码”和“密码永不过期”。点击“创建”,完成用户View的创建。同样的步骤,创建Admin用户。由于Windows默认将用户添加到Users组,你可以将刚才的两个用户从Users组中删除。方法是在“计算机管理”中点击“组”,在右侧的列表中找到Users,双击之,出现如下界面,点中用户View,点“删除”,点中用户Admin,点“删除”。将两个用户从Users组中删除。

    

    接下来,在FTP站点中,给View和Admin添加权限。

    点击:控制面板—》管理工具—》Internet信息服务(IIS)管理器。点中刚才新建的FTP站点。点中“FTP授权规则”。如下图所示:

    

    点击右侧的“编辑权限”,对FTP站点文件夹添加用户权限。在弹出的窗口中,点击“安全”标签。,如下图所示:

    

    点“编辑”,出现权限的窗口,如下:

    

    点“添加”,在“输入对象名称来选择”中输入View,点“确定”,添加View用户。如下所示:

    

    添加的View用户,默认是只有读取、列出的权限。在依法添加Admin用户,给Admin用户添加完全控制的权限。如下所示:

    

    再回到“Internet信息服务(IIS)管理器”窗口,双击刚才选中的“FTP授权规则”,在FTP站点中对View和Admin授权。如下所示:

    

    点击右侧的“添加允许规则”,在弹出的窗口中,勾选“指定的用户”,输入View,在下方的“权限”中,勾选“读取”。如下所示:

    

    点“确定”,给FTP站点添加View用户,相应的权限是读取。再给FTP站点添加Admin用户,相应的权限是读取和写入。

    至此,FTP的站点设置就完成了。站点文件夹是c:\ftp,View用户有读取(浏览和下载)的权限,Admin用户有读取和写入(上传和删除)的权限。当然,还可以根据实际的情况添加用户及相应的权限,也可以将用户添加进组,再给组设置权限。还可以添加匿名用户等等,不一而足了。

    然而,事情远远没有结束。如果,你急于做测试的话。会发现,在本机上测试正常,但是用别的机器测试FTP的话,会发现连接不上。问题出在Win7下的防火墙。如果你把防火墙关掉,你会发现FTP恢复了正常,但你也不能因为要用FTP,就把Win7的防火墙关掉。要想在Win7开着防火墙的时候还要正常使用,还必须得在防火墙中进行一番设置

  四、Win7的防火墙设置

    点击:控制面板—》Windows防火墙。点击左侧的“允许程序或功能通过Windows防火墙”,选中“FTP服务器”,将后面的两个框都勾选,如下所示:

    

    这是网上绝大多数介绍的防火墙设置。然而还不够,你做测试的话会发现,还是连接不上。还必须在防火墙中进一步做设置。

    点击下方的“允许运行另一程序”,在弹出窗口里,点“浏览”,找到C:\Windows\System32\inetsrv\inetinfo.exe,点添加,也就是上图中的Internet Infomation Services。将后面的两个框也都选中。因为在Win7下,FTP是IIS的一个组件,因此也必须在防火墙中将IIS设置为允许。而IIS又不在默认的列表中,因此得手动添加。

    遗憾的是,这样设置,FTP还是不能正常使用。由于FTP用的是21端口,因此在防火墙中还得添加出站和入站的端口规则。

    在Windows防火墙窗口里,点击左侧的“高级设置”,弹出高级安全防火墙窗口,点击左侧的“入站规则”,如下图所示:

    

    点击右侧的“新建规则”,出现向导界面,勾选“端口”,如图:

    

    点击“下一步”,勾选TCP(FTP用的是TCP协议),再勾选特定本地端口,输入21(FTP用的是21端口)如图所示:

    

    点击“下一步”,勾选“允许连接”,如图:

    

    点击“下一步”,默认的都选上,如图:

    

    点击“下一步”,在名称里输入名字,本例中是21,如图

    

    点击“完成”,完成入站规则的设置,在用同样的方法,完成出站规则的设置,同样是21端口。

    至此,在Win7的防火墙就已经设置好了。现在测试基本上就正常了。

 

  不过,还有个小问题:

  在用IE浏览FTP的时候,虽然可以登录,但是没法显示FTP内容。这个是IE的设置问题。在Internet选项中,将“使用被动FTP(用于防火墙和DSL调制解调器的兼容性)”勾掉就解决了不能浏览的问题。如下图所示:

  

 

  后序。总体来说,Win7的内置FTP设置比一些第三方的FTP软件设置要繁琐一些。但是在某些场合下,还只能用Win7的内置FTP。以上的内容都是网上搜集来的,加上本人的亲测。如果谁在FTP设置上还有什么问题,欢迎交流。

posted @ 2014-08-15 16:18 顺其自然EVO 阅读(186) | 评论 (0)编辑 收藏

缺陷上报统一模板及缺陷管理流程

  一、前置条件 :要根据对测试理论及项目业务的理解呢,对缺陷的严重性和优先级有个清晰思路并进行正确的划分。
  二、统一缺陷报告的模板:
  1、编号   2、所属模块 3、摘要/标题(用一句话描述BUG)
  4、测试环境 、操作步骤 、实际结果 、期望结果 、备注
  5、bug优先级、严重性 6、测试人  7、日期  8、bug状态
  9、截图
  三、缺陷的管理流程 或bug的生命周期 (假如:发现bug,但不知道相关的开发负责人)
  提交bug-----经理/组长审核(检查描述、优先级与严重性是否符合)---
  --转交给相关的开发人员----修复bug并反馈回执给相关测试人员--
  --回归测试验证是否修复----根据验证结果更改bug状态

posted @ 2014-08-15 09:56 顺其自然EVO 阅读(213) | 评论 (0)编辑 收藏

ASA防火墙基本配置管理

 一、基本配置
#hostname name                          //名字的设置
#interface gigabitethernet0/0           //进入接口0/0
#nameif outside                         //配置接口名为outside
#security-level 0                       //设置安全级别。 级别从0--100,级别越高安全级别越高
#ip address 218.xxx.xxx.xxx  255.255.255.248 //设置外部ip地址
#no shutdown
#interface ethernet0/1                  //进入接口0/1
#nameif inside                          //配置接口名为inside
#security-level 100                     //设置安全级别。 级别从0--100,级别越高安全级别越高
#ip address 192.168.10.1  255.255.255.0 //设置ip地址
#duplex full                            //全双工
#speed 100                              //速率
#no shutdown
#interface ethernet0/2                 //进入接口0/2
#nameif dmz                            //配置接口名为dmz
#security-level 50                     //设置安全级别。 级别从0--100,级别越高安全级别越高
#ip address 192.168.9.1  255.255.255.0 //设置dmz接口ip地址
#no shutdown
#interface Management0/0                //进入管理接口
# nameif guanli                         //接口名
# security-level 100                    //安全级别
#ip address 192.168.1.1 255.255.255.0   //IP地址
  注意:security-level 配置安全级别。默认外网接口为 0/0  安全级别默认为 0
  内网接口为     0/1  安全级别默认为 100
  dmz 接口为     0/2  安全级别默认为 50
  默认情况下,相同安全级别接口之间不允许通信,可以使用以下命令:
  #same-security-traffic permit interface  //允许相同安全级别接口之间互相通信。
  较高安全接口访问较低安全接口:允许所有基于IP的数据流通过,除非有ACL访问控制列表,认证或授权的限制。
  较低安全接口访问较高安全接口:除非有conduit或acl进行明确的许可,否则丢弃所有的数据包。
  二、global、nat、static、route命令
  1、global命令
  global (if_name) nat_id ipaddress--ipaddress [netmask mask]
  if_name:指的是接口
  nat_id:为地址池的ID标识号
  ipaddress--ipaddress [netmask mask]:指定的IP地址池范围,也可以是一个地址
  例:
  global(outside) 1 218.106.236.247-218.106.236.249            //配置一个地址池
  global(outside) 1 interface                                  //配置单个地址为outside接口的地址
  global(outside) 1 218.106.236.237 netmask 255.255.255.248    //配置一个地址池,为255.255.255.248所有子网范围内的地址
  2、nat命令
  (1)基本用法
  nat (if_name)  nat_id  local_ip  [netmask]
  if_name:指的是接口
  nat_id:为地址池的ID标识号,即global中定义的nat_id
  local_ip  [netmask] :哪些地址转换到nat_id这个地址池上。
(2)动态内部nat转换(多对多)
  例:
  global(outside) 1 218.106.236.247-218.106.236.249            //配置一个地址池
  nat (inside) 1 192.168.9.0 255.255.255.0           //和上面的global配置一起使用,即把192.168.9.0 这个网段的地址转换为218.106.236.247-218.106.236.249这个网段
  (3) pat (多对一nat)
  当多个ip地址转换为一个ip地址时,就自动在外部IP地址的后面加上大于1024的端口号,以区别不同的转换访问。
  global(outside) 1 218.106.236.247                  //配置一个外部地址
  nat (inside) 1 192.168.9.0 255.255.255.0          //和上面的global配置一起使用,即把192.168.9.0 这个网段的地址转换为218.106.236.247这个外部IP地址。外部人看到的是自动加了端口号的地址。
  (4)策略nat
  access-list extended net1 permit ip  192.168.9.0 255.255.255.0 host 209.165.200.1    //定义一个策略
  global(outside) 1 209.165.200.100                                                    //定义一个地址
  nat (inside) 1 access-list net1     //当192.168.9.0 网段的地址访问 209.165.200.1这台电脑时,转换为209.165.200.100这个ip地址。
  (5)动态外部nat转换
  当低级别的想往高级别的转换时,在后面加outside关键字即可。
  nat (dmz) 1 192.168.7.0 255.255.255.0 outside    //把dmz接口下的地址nat 到inside接口中
  global(inside) 1 192.168.9.10-192.168.9.20        //即dmz接口中的192.168.7.0 网段的地址访问内网时,将转换为内网地址为192.168.9.10-192.168.9.20
  (6)nat 0 即nat 免除
  nat 0 表示穿过防火墙而不进行nat转换。即表示地址不经过转换直接作为源地址发送穿过防火墙达到低级别安全接口。
  nat (dmz) 0  192.168.0.9 255.255.255.255
  注意:执行nat的顺序:
  nat 0 (nat免除)
  静态nat和静态pat  (即static命令)
  策略动态 nat  (nat access-list)
  正常的动态nat和pat (nat)
  3、static映射命令
  充许一个位于低安全级别接口的流量,穿过防火墙达到一个较高级别的接口。即数据流从较低安全级别接口到较高安全级别。
  (1)常用方法:
  static (real_ifname  mapped_ifname) {mapped_ip|interface}  real_ip  [netmask mask]
  real_ifname :较高级别接口名   mapped_ifname:较低级别接口名
  mapped_ip:较低级别接口ip地址  interface:较低级别接口       real_ip:较高级别ip地址
  扩号内的顺序是:先高级别后低级别,扩号外的顺序是先低级别后高级别,正好相反。
  例: static (inside outside)  218.107.233.234  192.167.9.1      //即把218.107.233.234这个外部地址映射到内部地址192.168.9.1上。
  (2)静态端口映射
  static (real_ifname  mapped_ifname) {tcp | udp}  {mapped_ip|interface} mapped_port real_ip real_port [netmask mask]
  real_ifname :较高级别接口名   mapped_ifname:较低级别接口名
  tcp|udp :要映射的端口协议名
  mapped_ip:较低级别接口ip地址  interface:较低级别接口  mapped_port:端口名或端口号      real_ip:较高级别ip地址    real_port:端口名或端口号
  注意一点很重要:并不是配置了static就可以从外部访问内部了,必须要定义一个访问控制列表来实现一个通道,允许哪些服务或端口,或哪些地址可以访问。
  例:
  static (inside,outside) tcp interface ftp 192.168.10.4 ftp netmask 255.255.255.255  //把outside接口ip地址的ftp端口映射到192.168.10.4 内部IP的FTP端口。
  access-list ftp extended permit tcp any interface outside eq ftp                     //定议一个访问控制列表,以允许ftp数据流通过。
  access-group ftp in interface outside                                               //把访问控制列表应用于接口
  4、route 命令
  route if_name destination_ip  gateway  [metric]
  if_name:        接口名
  destination_ip: 目的地
  gateway:        网关
  metric:         跳数
  例:route outside 0 0 218.102.33.247 1     //即默认网关为 218.102.33.247 ,只有一跳
  route inside 192.168.9.0 255.255.255.0 192.168.10.1   //设置到目标192.168.9.0网段的网关为192.168.10.1
  三、访问控制
  访问控制的方法与路由器的没有区别。基本步骤是先定义访问控制列表,然后再应用到接口即可。在此不多作解释,在路由器模块里,会单独把访问列表作解释。
  四、防火墙基本管理
  1、telnet 配置
  #usename name password password                //设置登入的帐号和密码
  #aaa authentication telnet console LOCAL       //设置AAA验证方式。 此处为LOCAL本地。也可以用AAA服务器进入验证。
  #telnet 0.0.0.0 0.0.0.0 inside                 //哪些地址可telnet进此接口
  #telnet timeout 10                             //超时时长,以分钟为单位
  2、ssh登录配置
  #usename name password password                //设置登入的帐号和密码
  #aaa authentication ssh console LOCAL       //设置AAA验证方式。 此处为LOCAL本地。也可以用其他服务器进入验证。
  #ssh timeout 10
  #crypto key generate rsa modulus 1024         //指定rsa密钥的大小,这个值越大,产生rsa的时间越长,cisco推荐使用1024.
  # write mem                                   //保存刚才产生的密钥
  #ciscoasa(config)#ssh 0.0.0.0 0.0.0.0 {inside|outside} //允许哪些IP可以通过SSH登录此防火墙。 inside为内网接口,outside为外网接口。0.0.0.0 0.0.0.0 表示所有IP,可配置单个IP,也可以配置某段IP。
  #ssh timeout 30                               //设置超时时间,单位为分钟
  #ssh version 1                                  //指定SSH版本,可以选择版本2
  #passwd 密码                                    //passwd命令所指定的密码为远程访问密码
  show ssh                                       //查看SSH配置信息
  crypto key zeroize                            //清空密钥
  show crypto key mypubkersa                     //查看产生的rsa密钥值
  3、asdm配置
  先上传相应asdm版本到防火墙中。
  # webvpn                                       // 进入WEBVPN模式
  # username cisco password cisco               // 新建一个用户和密码
  # http server enable                          //开启HTTP服务
  # http 192.168.9.10 255.255.255.0 inside    //允许哪些ip 通过哪个接口可以通过http连上来。此处的意思为:允许192.168.9.10 这个IP用http通过inside连上防火墙.
  # http 192.168.1.0 255.255.255.0 guanli    //允许192.168.1.0网段经过管理接口连上防火墙。注意要用交叉线和管理接口连接,进行配置。当然事先要设置管理接口的IP,和名称。
  经过以上配置就可以用ASDM配置防火墙了。
  如果配置了inside接口访问,可直接输入防火墙inside的ip地址。     https://192.168.9.1
  如果配置了管理接口访问,首先用交叉线把电脑和防火墙的管理口相连,把电脑设成和管理口段的IP地址,本例中设为192.168.1.0 段的IP打开浏览器在地址栏中输入管理口的IP地址:
  https://192.168.1.1
  弹出一下安全证书对话框,单击 “是”
  输入用户名和密码(就是在串口的WEBVPN模式下新建的用户和密码),然后点击“确定”。
  出现也下对话框,点击“Download ASDM Launcher and Start ASDM”开始安装ASDM管理器,安装完以后从网上下载一个JAVA虚拟机软件(使用1.4以上 Java 版本),进入WWW.JAVA.COM下载安装,安装完后点击下面的“Run   ASDM as a Java Applet ”。
  出现以下对话框, 点击“是”。
  出现以下对话框,输入用户名和密码(就是在串口的WEBVPN模式下新建的用户和密码),然后点击“是”。
  出现以下对话框,点击“是”。
  进入ASDM管理器。
  这样就可以通过ASDM来配置防火墙了。
  以后就可以直接使用ASDM来管理防火墙了。
  一定要注意一点:有时候java的版本过高1.6版以上,会打不开,就试用低版本的(1.4)试一下。
  4、其他管理命令
  #write memory     //把配置保存
  #clear configure  all   //把run-config中的内容清空
  #write erase    //可清除flash闪存中的配置
  #dir             //显示flash中的文件
  #boot [system|config] <usr>:
  例: #boot system flash:/pix-701.bin     //即从哪个系统镜像中启动
  flash中可以存多个系统镜像和配置文件。boot可以选择从哪个系统镜像中启动。
  #clock set 21:00 apr 1 2002   //设置时间
  #show memery
  #show version
  #show cpu usage
六、虚拟防火墙
  (一)虚拟防火墙的特性:
  1、我们可以将一个单一的物理防火墙逻辑上分为多个虚拟防火墙,每个虚拟防火墙都是独立的设备。
  2、它们有自已独立的安全策略,接口和管理接口
  3、每个虚拟防火墙保存一个配置文件,以保存每个虚拟防火墙的策略和配置。
  4、虚拟防火墙不支持vpn,组播和动态路由协议
  (二)虚拟防火墙的种类
  虚拟防火墙分为:admin context和普通虚拟防火墙。
  admin context防火墙特性:
  admin context必须先于其他的虚拟防火墙进行创建和配置。
  用户登录到admin context虚拟防火墙就拥有了系统管理员的权限,可以访问系统以及其他虚拟防火墙。
  (三)流量分类
  因一个物理防火墙分为多个虚拟防火墙,那到底哪些数据流量属于哪个虚拟防火墙的呢?即如何把数据流量分配给虚拟防火墙。
  1、按接口划分:即将一个接口唯一的划分到一个虚拟防火墙中,那么通过这个接口的流量就都属于这个虚拟防火墙的。
  2、基于MAC地址划分:一个接口属于多个虚拟防火墙共有。需要为这个共享接口指定多个MAC地址,即每个虚拟防火墙指定一个mac地址。可手工指定,也可自动产生。
  由于ASA的接口有限,所以在多虚拟防火墙的模式下,我们会经常遇到一个接口同时分配给多个虚拟防火墙。这个时候使用物理接口来对流量进行分类的办法将在这种情况下不再适用,因为防火墙无法确定流量究竟应该转发到哪个虚拟防火墙。我们需要使用其他的方法来对流量的走向进行区分,通常我们会使用自动或者手动为这个分配给多个虚拟防火墙的共享接口指定不同的MAC地址,防火墙将使用MAC地址来区分流量的走向。
  手动指定MAC地址:
  在每个虚拟防火墙的该共享接口下配置:mac-address HHH.HHH.HH
  例如:
  hostname(config)#Interface F0/0
  hostname(config-if)# mac-address 0001.0001.0001
  自动指定MAC地址:
  在防火墙的SYSTEM平台的全局配置模式下配置:mac-address auto
  例如:
  hostname(config)# mac-address auto
  3、基于NAT划分:如果没有为接口指定唯一的MAC地址,防火墙当收到一个通过共享接口的流量时,防火墙只会检查目的IP地址。通过要使用目的IP地址来决定数据包的走向,那么防火墙必须知道目的地址是被定位在哪个虚拟防火墙上。NAT技术可以提供这样的功能。NAT的转换条目可以使防火墙将数据包转发到正确的虚拟防火墙上。
  配置静态NAT转换:
  ? Context A:
  static (inside,shared) 10.10.10.0 10.10.10.0 netmask 255.255.255.0
  ? Context B:
  static (inside,shared) 10.20.10.0 10.20.10.0 netmask 255.255.255.0
  ? Context C:
  static (inside,shared) 10.30.10.0 10.30.10.0 netmask 255.255.255.0
  当我们使用多防火墙模式,并且共享了接口到多个虚拟防火墙的时候,我们需要注意将流量转发到正确的虚拟防火墙上去,如果没有指定MAC地址(不管是手动还是自动)并且也没有配置NAT的话,防火墙将不能找到正确的目的地址而将数据包丢弃。
  (四)配置虚拟路由器
  1、基本配置
  #show mode             //显示当前路由器运行的模式
  #mode mltiple          //启用多虚拟防火墙
  #admin-context name     //首先创建一个admin-context虚拟防火墙
  #context name           //创建其他虚拟防火墙,注意虚拟防火墙名区分大小写
  2、为虚拟防火墙分配接口
  先设置好虚拟防火墙名,然后在虚拟防火墙配置模式下配置:
  #allocate-interface  物理接口名   [别名]  [visible | invisible] //为接口关联一个别名。也可以不关联。
  #allocate-interface eth0 int0   visible    //把eth0划分给一个虚拟防火墙,并且关联一个别名叫int0,并且让物理接口ID是可见的。invisible是不可见。
  #config-url url   //每个虚拟防火墙有独立的配置。为虚拟防火墙指定下载配置的地点和名称。
  #config-url c1.cfg   //指定配置为c1.cfg
  七、防火墙模式
  防火墙有两种模式:路由器模式和透明模式。路由器模式是常用的模式,配置方法如常规方法,这里主要解释透明模式。
  (一) 防火墙的透明模式的特性:
  (1)工作在二层,接口不需要配置IP地址;
  (2)只支持两个接口,inside和outside接口,这两个接口都接内网地址,像交换机的一个端口一样,没有区别。
  (3)不支持nat,QOS,多播,VPN,动态路由协议,ipv6,dhcp中继(可作DHCP服务器,但不能做DHCP中继)
  (4)支持多虚拟防火墙。在多虚拟防火墙下,每个虚拟防火墙都需配一个管理IP地址,但不能把管理IP作为网关。
  (5)工作在二层,但IP等三层流量要通过防火墙,仍需要ACL访问控制明确允许
  (6)arp流量不需要ACL控制就可以通过防火墙。但可以用ARP审查来控制流量。
  (二) 透明防火墙的基本配置
  #show firesall    //显示当前防火墙的运行模式
  #firewall transparent  //启用透明防火墙模式
  #no firewall transparent //返回ROUTE模式
  #ip address 192.168.9.1 255.255.255.0    //配置管理IP地址。注意,只是管理IP地址。
  注意:在配置透明防火墙的接口时,其他和路由器模式都一样,但不能配置IP地址。
  (三)定制mac表
  透明模式的防火墙转发包就是依据MAC地址进行转发,学习MAC地址的方法和交换机一样。默认情况下,每个接口自动学习通过它的流量的MAC地址。然后将响应的MAC地址加入MAC地址表中。可以关掉这个功能,但必须手工加入静态MAC地址条目到MAC地址表中,否则ASA防火墙将不能转发任何流量。
  #mac-learn  int_name disable    //int_name是接口名,即关掉哪个接口的MAC自动学习。
  #mac-address-table aging-time static int_name mac_address    //int_name 指的是接口名, mac_address指的是加入的静态mac地址。
  #mac-address-table aging-time timeout_value  //mac地址的超时时间。
  (四) arp审查
  arp审查可以防止arp欺骗攻击,当启用了ARP审查,ASA防火墙会将接收到的ARP包中的mac地址、IP地址和端口号与静态arp表对比。
  如果mac地址、IP地址和端口号与静态arp表这三项完全相匹配,则转发包
  如果mac地址、IP地址和端口号与静态arp表(这三项中)有任何一条不匹配,则丢弃包
  如果与静态arp表中任何条目没有任何匹配,则可设置将包丢弃还是将包flood(洪泛出去)
  注意:只与静态ARP相比较,如果不定义静态ARP表,那么ARP审查就没有任何意义了。
  1、定义静态ARP
  #arp int_name  ip_address mac_address    //定义静态ARP
  #arp-inspection int_name enable [flood|no-flood]
  #arp outside 10.1.1.11 0009.7cbe.2100    //定义静态arp,把10.1.1.11和mac地址0009.7cbe.2100 相关联
  #arp-inspection outside enable no-flood   //当如果没有任何匹配时,将丢弃包。 no-flood是丢弃,flood选项是洪泛

posted @ 2014-08-15 09:55 顺其自然EVO 阅读(374) | 评论 (0)编辑 收藏

好的产品经理,差的产品经理

  Ben Horowitz这篇不朽的杰作诞生于1996年,但时间的久远丝毫不影响其对当前的警示作用。那时,作为Netscape产品管理部门经理的Ben,没有假大空地介绍产品经理的角色和责任,而是很直观地对比了一个好的产品经理和差的产品经理。
  好的产品经理,差的产品经理
  ——Ben Horowitz
  好的产品经理了解市场、产品、产品线和剧烈的(市场)竞争,并基于自身强大的知识基础和自信进行角色扮演和职责履行。好的产品经理是产品的CEO。好的产品经理能全力履行职责并以产品的成功进行衡量。他们对正确的产品、正确的时机以及所有相关细节负有责任。好的产品经理了解公司、收入基本、竞争等种种情况的相关信息,他们负责制定并毫无托词地执行一个成功的计划。
  差的产品经理有众多借口。比如,资金不足、技术经理很白痴、微软拥有10倍的工程师致力于开发同样的产品、我超负荷了、我得不到直接充分的指导。Barksdale不会制造这些借口,同样产品CEO也不会。
  好的产品经理不会被需要共事交付正确产品、履行正确时间的其他各类组织占用全部时间。他们不会耗掉所有产品团队的时间、不会制定管理各种职能、不会成为产品队的一部分;相反,他们管理产品团队。技术团队不会将好的产品经理当成营销资源。好的产品经理是技术经理的营销同行。好的产品经理清晰地定义目标、做什么(需求),并管理交付什么。而差的产品经理在指出“怎么做”的时候自我感觉最棒。好的产品经理能以书面方式清晰地沟通工作上的事,即便在口头形式上也能做到清晰沟通。好的产品经理不会随便给出指示。但是,好的产品经理会非正式性地(不刻板)收集信息。
  好的产品经理会制作可参考的附加材料、常见问题解答、简报、白皮书。差的产品经理抱怨他们整天回复销售团队的问题,以至于头晕脑胀。好的产品经理期望严重的产品缺陷,并建立真实可靠的解决方案。而差的产品经理整日跟踪消除缺陷。好的产品经理对于重要问题(强竞争力的绝招、结实的架构抉择、艰难的产品决策、市场攻击或收益)进行书面记录。而差的产品经理口头陈述观点并悲叹类似问题不要在发生。一旦差的产品经理失败了,他们则指出自己已经预测到会失败。
  好的产品经理使团队关注收益和客户层面。而差的产品经理则让团队聚焦微软正构建的功能数。好的产品经理定义可暴力执行的好产品。差的产品经理则定义这样的“好产品”:不能执行或无法让技术人员构建他们想要的行为(比如,解决最大难度的问题)。
  好的产品经理会考虑:在发布计划中向市场交付高价值的东西,并在发布之后获取市场份额、取得收益目标。而差的产品经理对于交付价值、匹敌的竞争性功能、定价和普遍性之间的区别,却混淆不清。好的产品经理分解问题,而差的产品经理将所有问题捆绑为一个大难题。
  好的产品经理考虑想让媒体书写的故事。而差的产品经理跟媒体一同思考覆盖每个功能、考虑在真实技术上确保(描述)准确。好的产品经理咨询媒体问题,而差的产品经理回答媒体的任何问题。好的产品经理假定媒体和分析师是聪明的。差的产品经理则假定媒体和分析人员是外行人——(认为他们不理解“推动”和“拟推动”的区别)。
  好的产品经理在“‘明确’对比‘解释浅显问题’”方面犯错。而差的产品经理则从不解释显而易见的问题。好的产品经理定义他们的工作和成功,而差的产品经理经常需要被告知做什么。
  好的产品经理每周及时发送他们的现状报告,因为他们遵守纪律。而差的产品经理忘记及时发送,因为他们不重视纪律。

posted @ 2014-08-15 09:54 顺其自然EVO 阅读(153) | 评论 (0)编辑 收藏

仅列出标题
共394页: First 上一页 64 65 66 67 68 69 70 71 72 下一页 Last 
<2025年4月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

导航

统计

常用链接

留言簿(55)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜