为开发者准备的 11 个新鲜方便的框架
1.Layer CSS Layers CSS 是一个轻量级的CSS框架,它不强调任何设计但是处理主要结构。它拥有流动网格和一些简单的类,用来支持响应式布局。拥有许多种风格的表单,表格,列表以及其他更多的东西,但是没有颜色和圆角,定制完全看你自己喜欢。层还明显带有方便的“日常使用式风格”,浮动或者隐藏。 来源 2.Gumby Framework Gumby Framework 是一个灵活的,响应式的Css框架,由SASS驱动。使用一套灵活并且响应式的网格系统以及UI库来创建快速的和具有逻辑性的页面布局,以及应用原型。它借助于Sass的力量来构建。Sass是一个强大的Css预处理器,允许我们用更快的速度开发Gumby本身 —— 并且给予你新的工具用来快速的在Gumby Framework上进行定制和构建。 Gumby的开发紧跟最新的标准和规范。为了站在时代的最前端,Guby支持像 chrome, firefox, Opera,Internet Explore 8 – 10这样一些现代浏览器。 来源 3.Grid Forms 这是为使得表单和web应用程序更加漂亮,从而减少数据录入痛苦更少而做出的一种努力。Grid Forms 是一个为构建基于网格的表单而处理成样板的前端库。 Grid Forms 被设计成密集形式的表单,应在经常需要录入大量数据的应用场合。它是一个微小的Javascript/css框架,帮助你轻松实现网格上的表单。你也可以加入Scott Jehl的Respond.js,如果你想要你的表单在ie8中有响应式效果的话。 来源 4. FireShell FireShell是一个比较轻率的框架.为现代开发者而诞生. 对于团队和个人来说, 真是一个棒的开发流程管理工具. JavaScript可以运行,生成处理,自动压缩和文件关联, 用高级的HTML5来武装自己,使得它成为一个很牛X的框架. 它引用了部分HTML5,还有HTML5相关的一些原理,WAI-ARIA基线标记和实用的web. 适合小项目的css结构和定标器,独特的架构方式能缩小你写的对象形的css代码 . 还有很多灵活性比较强的文件夹结构层. 来源 5. Guzzle Guzzle减少了发送HTTP请求的痛苦,同时减少了创建web服务客户端麻烦。它是一个包含创建强大的web服务客户端所需工具的框架,其中包括:用于定义API输入和输出的服务器描述,用于传输页面化资源,尽可能高效地批量发送大量的请求的资源迭代器。 来源 6. Behat Behat是一种行为驱动开发(BDD)框架,能让你写出人类可读的故事驱动代码,以描述出你的应用程序功能。它能快速且轻松的入门,且易于学习掌握。 来源 7. Swagger Swagger是一个用于构建,实现和让RESTful web服务可视化的框架和规范。它的总目标是使得文档(以及客户端)同服务器端拥有一样的更新频率。 来源 8. Spark Spark是一个能让你使用Java快速创建web应用的微型框架。只需要下载它的库和依赖,放入你的classpath中,你就可以上手所有的东西了! 来源 9. Hopscotch Hopscotch是一个向你的页面中添加产品浏览板块的框架。它为开发者提供了一套控制浏览块的API,它如何显示以及浏览如何进行都包含在了其中。 来源 10.Sixpack Sixpack是一个工作跨越使用多种语言编写的多个服务的A/B测试框架,它完成了一个漂亮的面板向你展示测试结果。并且它初始化一个测试只需使用几行代码。 来源 11.AngularFire AngularFire是为你的Angular应用程序创建后端的一种简单的方法。它拥有一套灵活的API(带有显示或者隐式的同步,决定于你是想要简单还是想要功能强大),3条途经的数据绑定,还有快速开发的能力。 来源
View Details我是如何反编译D-Link路由器固件程序并发现它的后门的
OK,又是周末晚上,没有约会,只有一大瓶Shasta汽水和全是快节奏的音乐…那就研究一下程序吧。 一时兴起,我下载了D-link无线路由器(型号:DIR-100 revA)的固件程序 v1.13。使用工具Binwalk,很快的就从中发现并提取出一个只读SquashFS文件系统,没用多大功夫我就将这个固件程序的web server(/bin/webs)加载到了IDA中: /bin/webs中的字符信息 基于上面的字符信息可以看出,这个/bin/webs二进制程序是一个修改版的thttpd,提供路由器管理员界面操作功能。看起来是经过了台湾明泰科技(D-Link的一个子公司)的修改。他们甚至很有心计的将他们很多自定义的函数名都辅以“alpha”前缀: 明泰科技的自定义函数 这个alpha_auth_check函数看起来很有意思! 这个函数被很多地方调用,最明显的一个是来自alpha_httpd_parse_request函数: 调用alpha_auth_check函数 我们可以看到alpha_auth_check函数接收一个参数(是存放在寄存器$s2里);如果alpha_auth_check返回-1(0xFFFFFFFF),程序将会跳到alpha_httpd_parse_request的结尾处,否则,它将继续处理请求。 寄存器$s2在被alpha_auth_check函数使用前的一些操作代码显示,它是一个指向一个数据结构体的指针,里面有一个char*指针,会指向从HTTP请求里接收到的各种数据;比如HTTP头信息和请求地址URL: $s2是一个指向一个数据结构体的指针 我们现在可以模拟出alpha_auth_check函数和数据结构体的大概样子: 1 struct http_request_t 2 { 3 char unknown[0xB8]; 4 char *url; // At offset 0xB8 into the data structure 5 }; 6 7 int alpha_auth_check(struct http_request_t *request); alpha_auth_check本身是一个非常简单的函数。它会针对http_request_t结构体里的一些指针进行字符串strcmp比较操作,然后调用check_login函数,实际上就是身份验证检查。如果一旦有字符串比较成功或check_login成功,它会返回1;否者,它会重定向浏览器到登录页,返回-1; alpha_auth_check函数代码片段 这些字符串比较过程看起来非常有趣。它们提取请求的URL地址(在http_request_t数据结构体的偏移量0xB8处),检查它们是否含有字符串“graphic/” 或 “public/”。这些都是位于路由器的Web目录下的公开子目录,如果请求地址包含这样的字符串,这些请求就可以不经身份认证就能执行。 然而,这最后一个strcmp却是相当的吸引眼球: alpha_auth_check函数中一个非常有趣的字符串比较 这个操作是将http_request_t结构体中偏移量0xD0的字符串指针和字符串“xmlset_roodkcableoj28840ybtide”比较,如果字符匹配,就会跳过check_login函数,alpha_auth_check操作返回1(认证通过)。 我在谷歌上搜索了一下“xmlset_roodkcableoj28840ybtide”字符串,只发现在一个俄罗斯论坛里提到过它,说这是一个在/bin/webs里一个“非常有趣”的一行。我非常同意。 那么,这个神秘的字符串究竟是和什么东西进行比较?如果回顾一下调用路径,我们会发现http_request_t结构体被传进了好几个函数: 事实证明,http_request_t结构体中处在偏移量 0xD0处的指针是由httpd_parse_request函数赋值的: 检查HTTP头信息中的User-Agent值 将http_request_t + 0xD0指针指向头信息User-Agent字符串 这代码实际上就是: 1 if(strstr(header, "User-Agent:") != NULL) 2 { 3 http_request_t->0xD0 = header + strlen("User-Agent:") + strspn(header, " \t"); 4 } 知道了http_request_t偏移量0xD0处的指针指向User-Agent头信息,我们可以推测出alpha_auth_check函数的结构: 01 #define AUTH_OK 1 02 #define AUTH_FAIL -1 03 04 int alpha_auth_check(struct http_request_t *request) 05 { 06 if(strstr(request->url, "graphic/") || 07 strstr(request->url, "public/") […]
View Details10 个具有特殊用途的 Linux 发行版
Linux 发行版众多,大家除了可以基于发行版的流行程度进行选择外,也可适当留意该发行版的特定用途,或许在另外的场合该发行版正是你所需要的。今天我们将与大家分享 10 个具有特殊用途的 Linux 发行版,希望对你有用。 Scientific Linux 基于 Redhat,由两个科学研究机构 Fermilab 和 CERN 合作开发,适合对科学研究感兴趣的个人或团体。 官方主页:https://www.scientificlinux.org Scibuntu 与此类似,它基于 Ubuntu,目前仍在测试中。 Edubuntu Ubuntu 的官方衍生版之一,面向教育用户,适合学校使用。 如果是 3 岁以上的儿童,也可考虑 Qimo。 官方主页:http://www.edubuntu.com Backtrack 主要用于渗透测试的一个安全发行版,其中囊括了 300 多个工具,可说是安全人员的得力助手。 官方主页:http://www.backtrack-linux.org/ Parted Magic 非常好用的硬盘分区工具,另外也收录了许多实用的数据恢复工具。运行速度飞快,每次给朋友修电脑我都会带上它。 官方主页:http://partedmagic.com Ubuntu Studio 又一个 Ubuntu 官方的衍生版,适合音频、视频及图形发烧友或专业人士使用,其中预装了大量开源的多媒体应用程序。 官方主页:http://ubuntustudio.org Clonezilla 系统克隆工具,能够克隆单个分区或整个系统。另外,它也支持 Multicast 克隆,这对需要克隆大量系统的用户来说是相当有用的。可以用它来替代 Norton Ghost 这样的商业软件。 官方主页:http://www.clonezilla.org SystemRescueCd 系统急救工具箱,如果你的系统遇到了故障,或是要恢复数据,用它就对了。系统管理必备。 官方主页:http://www.sysresccd.org linuX-gamers 一个包含大量 Linux 游戏的 Live 发行版。无需安装。Linux 游戏玩家不可错过。 官方主页:http://live.linux-gamers.net Ubuntu CE Ubuntu Christian 版本,适合基督徒使用。 另外也有一个 UbuntuME,即 Ubuntu Muslim Edition,适合穆斯林用户使用。 官方主页:http://ubuntuce.com Mythbuntu 基于 MythTV 的家庭多媒体中心,可以作为 Tivo 和 Windows Media Center 的替代。 转自Ubuntu之家
View DetailsSQL SERVER2005 复制订阅功能介绍
一、复制简介 复制是将数据或数据库对象从一个数据库复制和分发到另外一个数据库,并进行数据同步,从而使源数据库和目标数据库保持一致。使用复制,可以在局域网和广域网、拨号连接、无线连接和 Internet 上将数据分发到不同位置以及分发给远程或移动用户。 一组SQL SERVER2005复制有发布服务器、分发服务器、订阅服服务器(图1 复制服务器之间的关系图)组成,他们之间的关系类似于书报行业的报社或出版社、邮局或书店、读者之间的关系。以报纸发行为例说明,发布服务器类似于报社,报社提供报刊的内容并印刷,是数据源;分发服务器相当于邮局,他将各报社的报刊送(分发)到订户手中;订阅服务器相当于订户,从邮局那里收到报刊。在实际的复制中,发布服务器是一种数据库实例,它通过复制向其他位置提供数据,分发服务器也是一种数据库实例,它起着存储区的作用,用于复制与一个或多个发布服务器相关联的特定数据。每个发布服务器都与分发服务器上的单个数据库(称作分发数据库)相关联。分发数据库存储复制状态数据和有关发布的元数据,并且在某些情况下为从发布服务器向订阅服务器移动的数据起着排队的作用。在很多情况下,一个数据库服务器实例充当发布服务器和分发服务器两个角色。这称为“本地分发服务器”。订阅服务器是接收复制数据的数据库实例。一个订阅服务器可以从多个发布服务器和发布接收数据。 (图1) 复制有三种类:事务复制、快照复制、合并复制。事务复制是将复制启用后的所有发布服务器上发布的内容在修改时传给订阅服务器,数据更改将按照其在发布服务器上发生的顺序和事务边界,应用于订阅服务器,在发布内部可以保证事务的一致性。快照复制将数据以特定时刻的瞬时状态分发,而不监视对数据的更新。发生同步时,将生成完整的快照并将其发送到订阅服务器。合并复制通常是从发布数据库对象和数据的快照开始,并且用触发器跟踪在发布服务器和订阅服务器上所做的后续数据更改和架构修改。订阅服务器在连接到网络时将与发布服务器进行同步,并交换自上次同步以来发布服务器和订阅服务器之间发生更改的所有行。 二、复制实例 这里以配置一个事务复制来说明复制配置过程 。 试验在同一台机器的二个实例间进行,实例名分别是SERVER01、SERVER02 。将SERVER01配置发布服务器和分发服务器(也就是前面提到的“本地分发服务器”),SERVER02配置为订阅服务器。在本例中将SERVER01中一个DBCoper库中person表作为发布的数据,在发布前请确保person表有主键、SQL SERVER 代理自动启动、发布数据库是日志是完整模式。 第一步:完全备份SERVER01 DBCopy数据库,在SERVER02上恢复DBCopy数据库(复制前的同步,使用发布的源和目标数据一致) 第二步:在SERVER01上设置发布和分发A 在SERVER01的复制节点—>本地发布右键选择新建订阅(图2) ()(图2) B B 在新建发布向导中首先要求选择分发服务器,本例选择本机作为分发服务器,选择默认值。(图3) (图3) C 向导第三步要求选择快照的路径,一般情况下选择默认路径 D 向导第四步选择发布的数据库(如图四),选择DBCopy (图4) E 接着选择发布的类型,这里选择事务复制(如图5) (图5) F 选择发布的内容(PERSON),这里不仅可以发表,还可以发布其他的数据库对象,比如函数。在选择某一个表之后还可以选择发布某一列或几列。在这个步骤下一个界面中可以选择要发布的行。 (图6) G 设置发布的内容之后设置 运行SQL代理的账号。设置如下: (图7) H 设置上一步之后,给复制起个名字PersonCopy。到此为止,发布和分发已配置成功。(如图8) (图8) 第三步:配置订阅。 订阅有两种方种,一种是由发布服务器向订阅服务器“推”数据,由订阅服务器去请求订阅数据。本例在SERVER02上设置请求订阅。 A 第一步在SERVER02复制节点右击订阅,新建订阅(图9) (图9) B 选择发布服务器,在下拉列表框中选择查找SQL SERVER 发布服务器,选择SERVER01,就可以看到刚才新建的发布PersonCopy。如图(10) (图10) C 选择订阅方式。(图11) 这里选择请求订阅 (图11) D 选择订阅的本地数据库(如图12)。 (图12) E 设置完本地数据库之后要求设置运行代理的安全性,设置成SQL 代理账号。完成以上设置后,订阅已设置完成。 在SERVER01表中插入一条新记录后,在SERVER02中去检查是否同步过来。一般来说,几乎SERVER01执行完了,SERVER02就可以看到更新后的数据。 转自:http://blog.csdn.net/kira155716/article/details/6072747
View Details关于农业银行的一些接口问题
最近写了一个农行的接口,其中遇到的问题也不少,在此给大家分享一下,避免大家走弯路。 1.第一个是关于wse2.0的问题。 刚开始对于这个不明白是什么意思,查看了资料明白了大致的意思,主要是用户安全方面的额。在接口中需要用到一个Microsoft.Web.Services2.dll的文件,版本号必须是2.0.2.0。 报错的提示:“ReturnCode = [1999]ErrorMessage = [系统发生无法预期的错误 – 未能加载文件或程序集“Microsoft.Web.Services2,Version=2.0.2.0,Culture=neutral ,PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。系统找不到指定的文件。]“ 网上也有人问,但是都没给出解决方法,但是不能用。让我苦苦寻求啊,最后去下载了wse2.0去安装,然后提取正确版本的dll。但是问题总是那么多,我装的是win7的系统竟然出现不能安装的情况。 用了很长时间去解决这个问题,最后实在是没办法了去找了一个xp的系统,首先把wse2.0安装上,把安装之后的文件里边的dll拷贝到自己的电脑里边。再用vs去引用,解决了我的这个问题。 2.关于配置文件的问题 本来在本地测试好好的,屁颠颠的上传到服务器,结果遇到问题了,显示如下:“ReturnCode = [1002] ErrorMessage = [无法读取证书文档 – [C:\lineremit\**********1.pfx]!An error occurs while reading from the file. – [C:\lineremit\241011400017A01.pfx]!An error occurs while reading from the file.]” 不能读取文件我以为是文件权限的问题但是,马上发现不是。路径也正确。实在蛋疼的受不了就去网上看看有没有遇到同样问题的,搜了一下果然有,,感谢党啊!! 解决的方法:在IIS里边的应用程序池里边找到标识选项卡。选择本地服务。即可解决这个问题。 转自:http://www.cnblogs.com/shinelhui/archive/2013/04/28/3049738.html
View Detailsiis7为应用程序池指定标识(执行帐号)
打开 IIS 管理器。 有关如何打开 IIS 管理器的信息,请参阅 打开 IIS 管理器 (IIS 7)。 在“连接”窗格中,展开服务器节点,然后单击“应用程序池”。 在“应用程序池”页中,选择要为其指定标识的应用程序池,然后单击“操作”窗格中的“高级设置”。 对于“标识”属性,单击 … 按钮以打开“应用程序池标识”对话框。 如果您要使用内置帐户,请选中“内置帐户”选项,然后从列表中选择一个帐户。 如果要使用自定义标识,请选中“自定义帐户”选项,然后单击“设置”以打开“设置凭据”对话框。 接着,在“用户名”文本框中键入自定义帐户名,在“密码”文本框中键入密码,在“确认密码”文本框中重新键入密码,然后单击“确定”。 单击“确定”关闭“应用程序池标识”对话框。 如果出现以下错误: 应用程序池 ×××的标识无效。可能是为标识指定的用户名或密码不正确,或者用户不具有批登录权限。如果不更正标识,则当应用程序池接收到它的第一个请求时,应用程序池将被禁用。如果是批登录权限导致的此问题,则必须在授予权限之后更改 IIS 配置存储中的标识,然后 Windows Process Activation Service (WAS)才可以重试登录。如果在处理对应用程序池的第一个请求之后标识仍然无效,应用程序池将被禁用。数据字段包含错误号。 需要在 控制面板-》管理工具-》本地安全策略-》本地策略-》用户权利指派-》做为批处理作业登录 添加用户进去。 另外应用程序池的集成模式,不能设置模拟,要在web.config里面干掉这段
1 2 3 |
<configuration> <system.web> <identity impersonate="true"/> </system.web> </configuration> 转自:<a href="http://www.cnblogs.com/linn/archive/2010/12/08/1900020.html">http://www.cnblogs.com/linn/archive/2010/12/08/1900020.html</a> |
内网可用的IP段
内网IP是以下面几个段的IP.用户可以自己设置.常用的内网IP地址: 10.0.0.0~10.255.255.255 172.16.0.0~172.31.255.255 192.168.0.0~192.168.255.255 地址分类 大部分网络使用B类或C类地址,每一个类的第一个八位组的范围如下: 1、0-—127。A类 网络号码范围是 0.0.0.0—127.0.0.0 ,用于128个网络。但网络不能全由0组成且127.0.0.0保留用于回路。剩下的126个网络,1到126,共有16777214个可能的主机地址(16777216减2) A类 网络 —主机—主机—主机 0-127 127 0 0 0 2、128—191。B类,网络号码范围是128.0.0.0--191.254.0.0 用于16256个网络。共有65534个可能的主机地址 B类 网络—网络—-主机—主机 128-191 128 123 0 0 3、192--223。C类,网络号码范围是192.0.0.0--223.254.254.0,用于2064512个网络。共有254个可能的主机地址 C类 网络—网络—-网络—主机 192-223 192 0 0 0 所有的网络空间计算都必须“减2”,这是因为要扣除两个保留地址:“0”为网络号,“255”为广播。地址1-254分配给主机。 第一个八位组号码224-254保留给在这儿未讨论的特殊类(组播和实验)。 通过上述讨论,可以知道只有很少数非常大的组织才能拥有A类地址,实际上只有126个这样的组织,我们中大多数用的是B类和C类IP地址与INTERNET相连。 4、D类 网络—网络—-网络—-网络—主机 224.0.0.0--240.255.255.255 用于组播(Multicast),这样可以节约网络资源。 5、E类 地址属于保留地址。 内网保留地址 Internet设计者保留了IPv4地址空间的一部份供专用地址使用,专用地址空间中的IPv4地址叫专用地址,这些地址永远不会被当做公用地址来分配,所以专用地址永远不会与公用地址重复. IPv4专用地址如下: IP等级 IP位置 Class A 10.0.0.0-10.255.255.255 默认子网掩码:255.0.0.0 Class B 172.16.0.0-172.31.255.255 默认子网掩码:255.255.0.0 Class C 192.168.0.0-192.168.255.255 默认子网掩码:255.255.255.0 内网是可以上网的.内网需要一台服务器或路由器做网关,通过它来上网 做网关的服务器有一个网关(服务器/路由器)的IP地址,其它内网电脑的IP可根据它来随意设置,前提是IP前三个数要跟它一样,第四个可从0-255中任选但要跟服务器的IP不同
View Details各种raid简介
RAID 0即Data Stripping(数据分条技术)。整个逻辑盘的数据是被分条(stripped)分布在多个物理磁盘上,可以并行读/写,提供最快的速度,但没有冗余能力。要求至少两个磁盘。我们通过RAID 0可以获得更大的单个逻辑盘的容量,且通过对多个磁盘的同时读取获得更高的存取速度。RAID 0首先考虑的是磁盘的速度和容量,忽略了安全,只要其中一个磁盘出了问题,那么整个阵列的数据都会不保了。 问:RAID0至少几块盘? 答:RAID0最少要两块硬盘才能实现。 RAID 1,又称镜像方式,也就是数据的冗余。在整个镜像过程中,只有一半的磁盘容量是有效的(另一半磁盘容量用来存放同样的数据)。同RAID 0相比,RAID 1首先考虑的是安全性,容量减半、速度不变。 问:RAID1至少几块盘? 答:RAID1最少要两块硬盘才能实现。 RAID 0+1 为了达到既高速又安全,出现了RAID 10(或者叫RAID 0+1),可以把RAID 10简单地理解成由多个磁盘组成的RAID 0阵列再进行镜像。 问:RAID0+1至少几块硬盘才能实现。 答:RAID0+1至少需要4块盘。 RAID 3和RAID 5 都是校验方式。 RAID 3的工作方式是用一块磁盘存放校验数据。由于任何数据的改变都要修改相应的数据校验信息,存放数据的磁盘有好几个且并行工作,而存放校验数据的磁盘只有一个,这就带来了校验数据存放时的瓶颈。 RAID 5的工作方式是将各个磁盘生成的数据校验切成块,分别存放到组成阵列的各个磁盘中去,这样就缓解了校验数据存放时所产生的瓶颈问题,但是分割数据及控制存放都要付出速度上的代价。 问:RAID5需要几块硬盘?为什么损失一个盘的容量? 答:至少3块,RAID5把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上,其中任意N-1块磁盘上都存储完整的数据,也就是说有相当于一块磁盘容量的空间用于存储奇偶校验信息。因此当RAID5的一个磁盘发生损坏后,不会影响数据的完整性,从而保证了数据安全。当损坏的磁盘被替换后,RAID还会自动利用剩下奇偶校验信息去重建此磁盘上的数据,来保持RAID5的高可靠性。
View Details使用Microsoft Web Application Stress Tool对web进行压力测试
Web压力测试是目前比较流行的话题,利用Web压力测试可以有效地测试一些Web服务器的运行状态和响应时间等等,对于Web服务器的承受力测试是个非常好的手法。Web 压力测试通常是利用一些工具,例如微软的Web Application Stress、Linux下的siege、功能全面的Web-CT等等,这些都是非常优秀的Web压力测试工具。 虽然这些工具给我们测试服务器承受能力带来方便,但是它们的危害却更是惊人,甚至于利用随便一种比较全面的测试工具就可以对一台小型的 Web服务器发动灾难性的拒绝式攻击。下面我就带大家利用微软的Web Application Stress进行一次Web压力测试,其目的是为了让大家看到它的巨大危害。 一、工具简单介绍 Microsoft Web Application Stress Tool 是由微软的网站测试人员所开发,专门用来进行实际网站压力测试的一套工具。透过这套功能强大的压力测试工具,您可以使用少量的客户端计算机仿真大量用户上线对网站服务所可能造成的影响,在网站实际上线之前先对您所设计的网站进行如同真实环境下的测试,以找出系统潜在的问题,对系统进行进一步的调整、设置工作。就是因为这些特性,才使它具备了D.O.S轰炸的功能。 小提示:D.O.S(拒绝服务攻击)通过使你的服务计算机崩溃或把它压跨来阻止你提供服务。简单来说,就是让你的计算机提供可能多的服务从而使你的计算机陷入崩溃的边缘或崩溃。 二、工具简单设置 打开Web Application Stress Tool,很简洁的一个页面(如图1),上面是工具栏,左下方是功能选项,右下方是详细设置选项。在对目标Web服务器进行压力测试之前,先对它进行一些必要的设置。 图1 1. 在“settings”的功能设置中(如图2),一个是Stress level (threads)这里是指定程序在后台用多少线程进行请求,也就是相当于模拟多少个客户机的连接,更加形象的就是说设置多少轰炸的线程数。一般填写 500~1000,因为这个线程数是根据本机的承受力来设置的,如果你对自己的机器配置有足够信心的话,那么设置的越高,轰炸的效果越好。 要改变并发用户数,点Settings图标。如果少于100个用户,你可以直接设置Stress Level,要模拟多于100个用户,你还须设置Stress Multiplier。基本公式为:用户数(线程数)= Stress Level * Stress Multiplier.如果要模拟1,000个用户,你可以设置Stress Level为100而Stress Multiplier为10。 图2 2.在“Test Run Time”中来指定一次压力测试需要持续的时间,分为天、小时、分、秒几个单位级别,你根据实际情况来设置吧! 3.其余的选项不太重要,这里就不再浪费笔墨,朋友们可以自己尝试一下设置。 三、压力测试 工具介绍完了,下面来准备条件:这里与一个朋友商量好进行测试,他是单机上网,机器配置是CPU:Athlon XP2500+、内存512MB、硬盘80GB等,机器配置还不错。他在机器上安装了IIS,架设了一台对外的Web服务器,Web服务中的程序是动网 7.0。我就利用压力测试工具对这台服务器进行测试。 步骤1:在工具中点右键,选择Add命令,增加了一个新的测试项目:New script,对它进行设置,在主选项中的server中填写要测试的服务器的IP地址。在下方选择测试的Web连接方式,这里的方式Verb选择 get,path选择要测试的Web页面路径,这里填写/Index.asp,即动网的首页文件(如图3)。 图3 步骤2:在“Settings”的功能设置中将Stress level (threads)线程数设置为1000。完毕后,点工具中的灰色三角按钮即可进行测试(如图4)。测试完毕,等待朋友把任务管理器以及连接查看的截图发过来! 图4 攻击开始后,朋友从任务管理器中可以看到CPU使用率已经达到100%,损耗率达到最大(如图5)。在CMD窗口中使用命令netstat -an,可以看到我的IP地址在朋友服务器上的80端口进行了非常多的连接(如图6)。而且它的Web网站已经打不开了,提示过多用户连接,达到了跟 D.O.S攻击一样的目的。 图5 图6 试想,如果利用多台肉鸡对一台服务器进行Web压力测试,那么对这台服务器来说将是灭顶之灾,所以朋友们在使用它之前一定要慎重考虑。 分析测试结果 你可以点工具条上的Reports图标来看产生的报告。这将产生一个与Script tab相临的新的tab。报告被存储在一个大纲视图里。首先,在你的报告下面点Result Codes,这个将给你一个快速的印象,这次测试是否出现了什么问题。如果你看到的状态代码不是200,你也许需要调查一下出现了什么问题,通常的问题包括署名和不正确的URL路径。 点Overview,你将看到这个测试活动的一个简要快速的分析。从ASP的技术角度看,Request per Second,是一个需要深入分析的关键值。这个值越高越好。通常,如果你不能从使用报告和预算中决定出一个特定的目标,你可以让ASP 的Requests per Second值高于30,当然这个ASP是没有连数据库或使用其他组件的。因为可以预见,连接数据库将增加程序的负担。 虽然有Request per Second这个计数器默认包含在WAS里,你也许想增加其他的计数器。你可以在点了Perf Counters的图标后通过点Add Counter来增加其他的计数器。一个特别有用的计数器是ASP Requests Queued,这个计数器往往是在识别一个阻塞或长期驻留的页面或组件时的关键。关于分析ASP性能的资源有: · Tuning Internet Information Server Performance · Navigating the Maze of Settings for Web Server Performance Optimization · IIS 4 Resource Kit 影响性能和可测量性的因素 服务器组成,数据库访问,和其他因素会大大降低ASP的Request per Second值。不同的配置选择也会起到不同的作用,在这里我要指出几个常出现的因素: · 如果你在访问一个数据库,你是否有做连接池?关于连接池的详细资料请看Pooling in […]
View DetailsOPENSTA使用介绍
1. OPENSTA简介 OpenSTA是一个免费的、开放源代码的web性能测试工具,能录制功能非常强大的脚本过程,执行性能测试。例如虚拟多个不同的用户同时登陆被测试网站。 目前比较著名的并发性能测试工具有Rat ional Robot 、QALoad、LoadRunner 和微软的WAS 等。这其中QALoad、LoadRunner、Rational Robot 都是比较不错的商业测试工具。微软的WAS是一个免费的测试工具,但有一定的局限性。 OpenSTA 是专用于B/S结构的、免费的性能测试工具。它的优点除了免费、源代码开放的优点外,还能对录制的测试脚本进行,按指定的语法进行编辑。在录制完测试脚本后,可以对测试脚本进行编辑,以便进行特定的性能指标分析。其较为丰富的图形化测试结果大大提高了测试报告的可阅读性。 Op enSTA 基于CORBA 的结构体系,它通过虚拟一个proxy,使用其专用的脚本控制语言,记录通过proxy 的一切HTTP/S traffic。通过分析OpenSTA 的性能指标收集器收集的各项性能指标,以及HTTP 数据,对系统的性能进行分析。 优点:压力测试引擎具有可扩充性,可以完成打规模的压力测试。提供脚本语言支持。 2. OPENSTA安装 下载OPENSTA安装包,双击安装即可。 3. 测试入门 首先打开OpenSta Commander,主界面如下: 该界面主要包括Repository(仓库),用于存储测试相关数据,单击仓库中的相关内容,主视图回显示与之相关的内容。 一个完整的测试一般包括3个方面的内容,首先录制测试脚本,然后定制性能采集器,最后把测试脚本和性能采集器组合起来,组成一个测试案例,通过运行该测试案例,获取该测试内容的相关数据。 可通过如下步骤录制新脚本: 1) 鼠标点“Scripts ”,通过右键菜单“New Script ”->“HTTP”生成新脚本,脚本名称缺省为NEWSCRIP。 2)双击新脚本,打开Script Modeler 窗口,在Options菜单中设置Browser 和Gateway,一般情况下,保持Gateway 的缺省设置。 3)按工具栏中的红色圆钮,自动打开指定的浏览器,输入需要录制的系统URL,显示被测试网站的首页内容。在登陆成功之后,执行各个既定的操作步骤。按工具条上的方框按钮,或直接退出浏览器,可以停止脚本的录制,这是在Script Modeler窗口中将看到被录制下来的脚本语句。 如下图 生成性能指标收集器(Collector) 性能指标收集器(Collector)是用户定义的一组问题,决定在测试过程中哪些性能指标需要记录。包括两种类型: 1) NTPerformance Collectors 用于采集运行WinNT 或Win 2000 的主机的性能指标。 2) SNMP Collectors 用于采集主机和其他运行SNMP agent 或proxy SNMP agent 的SNMP 数据。 Collector 的设置: 1) 鼠标点“Collectors”,通过右键菜单生成新指标收集器,缺省为NEWCOLLECTOR。 2) 通过browse Queries 浏览并设置需要收集的性能指标,如下图 组成测试环境 在Tests中新建一个NEWTEST,将测试脚本和性能指标收集器拖到该Test 中,如下图: 按工具栏中的,执行测试,测试过程中可以查看“Monitoring”页签的内容,测试结束后,该页签为空。测试结束后,点工具按钮下方的Results页签,显示所记录的测试结果数据,如下图。 需要注意,OpenSTA是GUI界面,同时也支持命令行、批处理文件,但不支持使用嵌入技术(如Applets,ActiveX,Flash或javascript),以及通过HTTP/S以外的协议访问Web Server。 4. 分布测试 OPENSTA支持分布测试,可以把测试任务指派到其他机器上运行,前提是另外的机器必须安装OPENSTA,并且他的NameServer必须运行起来,要在其他机器上运行测试任务,需要在组织测试案例时,设定host属性,见下图: 在Host Name设定相应的主机名,然后执行该任务即可。 5. 并发测试 OPENSTA支持并发测试,可以模拟多个用户同时多次发出http请求,要在机器上运行多个用户测试任务,需要在组织测试案例时,设定VUs属性,见下图: 有关参数的解释见图示说明. 转自:http://www.cnblogs.com/wishma/archive/2008/07/21/1247637.html
View Details