完美支持ipv6的测试工具:tsung

平日工作做单元测试经常会需要进行一些简单的压力测试,挺多功能要测试ipv6地址,在网上找了一圈,发现只有tsung这个的命令行工具能完美支持ipv6地址,非常强大,它是一款分布式的、支持多协议的开源压力测试工具,据说压死过很多服务器,配置非常灵活,推荐大家使用。 来自官方网站的介绍: What is Tsung ? Tsung (formerly IDX-Tsunami) is a distributed load testing tool. It is protocol-independent and can currently be used to stress HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP, and Jabber/XMPP servers. It is distributed under the GNU General Public License version 2. 1.安装 需要安装erlang,以debian为例,去官方网站下载最新源代码: http://tsung.erlang-projects.org/;现在的最新版本是1.4.2。 sudo apt-get install erlang tar zxvf tsung-1.4.2.tar.gz Continue Reading »

常见操作系统操作静态路由命令

记录一下常见系统设置静态路由的命令,备忘,希望对大家有帮助;注意:以下命令需要root权限。 1.ipv4 1.1 FreeBSD 1.1.1 添加路由 添加一条到网段192.168.2.0/24,下一跳地址是192.168.1.2的静态路由 : route add -net 192.168.2.0/24 192.168.1.2 添加一条到主机192.168.2.1,下一跳地址是192.168.1.2的路由: route add -host 192.168.2.1 192.168.1.2 1.1.2 删除刚才添加的路由 route del 192.168.2.0/24 route del 192.168.2.1 1.1.3 显示路由表信息 netstat -r 1.2 linux 1.2.1 添加路由 route add -net 192.168.2.0/24 gw 192.168.1.2 route add -host 192.168.2.1 gw 192.168.1.2 1.2.2 删除路由 route del 192.168.2.0/24 route del 192.168.2.1 Continue Reading »

学习graphviz:画双向队列或者双向链表

我在这篇文章《深入理解FreeBSD中的TAILQ》中需要画队列图举例子,想到的画图工具就是微软的visio,dia,diagram designer,易图等这些所见即所得的画流程图的软件,但是无法画出自己想要的那种效果,或者说要画出那种效果非常难,而且很做作的感觉;于是乎,网上乱搜一番,发现了强大的graphviz软件,画出来的图想当完美;它是AT&T的开源项目,原生的类unix命令行软件,沿袭了unix的文本即一切的思想,类似Knuth教授的tex软件,用文本生成图形。 来自官方网站的介绍(http://www.graphviz.org/): What is Graphviz? Graphviz is open source graph visualization software. Graph visualization is a way of representing structural information as diagrams of abstract graphs and networks. It has important applications in networking, bioinformatics,  software engineering, database and web design, machine learning, and in visual interfaces for other technical domains. 我现在要画出下面这个双向队列(或者双向链表)来学习graphviz。 说明(详细信息请见《深入理解FreeBSD中的TAILQ》): 1.这个队列头是queue_head,tqh_first指针指向第一个元素,tqh_last是一个二级指针,是最后一个元素1的tqe_next的地址。数据结构如下所示: Continue Reading »

深入理解FreeBSD中的TAILQ

工作的主要内容是tcp/ip,平台是FreeBSD,而且在内核态开发,所以很多情况下会涉及内核的一些数据结构和宏,比如说mbuf和TAILQ等。 TAILQ是FreeBSD/linux内核对双向队列操作的一种抽象,抽象程度不亚于C++,能实现操作队列需要的各种操作:插入元素,删除元素,遍历队列等。这个队列的优点是插入元素很快。 这里先回顾一下队列的特点(来自维基百科 http://zh.wikipedia.org/wiki/%E9%98%9F%E5%88%97): 队列,又稱為佇列(英文queue),是先进先出(FIFO, First-In-First-Out)的线性表。在具体应用中通常用链表或者数组来实现。 FreeBSD中的TAILQ把整个队列头抽象为一个单独的数据结构,我们先看看FreeBSD中的TAILQ相关宏,然后再举例子理解这些宏。 这里用最简单的一个结构体来理解TAILQ,这个结构体中有一个int型整数,还有两个分别指向前方和后方的指针。 1.描述前一个和下一个元素的结构体 458 #define TAILQ_ENTRY(type) \ 459 struct { \ 460 struct type *tqe_next; /* next element */ \ 461 struct type **tqe_prev; /* address of previous next element */ \ 462 TRACEBUF \ 463 } 这是TAILQ对两个指向前后两个元素指针的抽象,抽象为TAILQ_ENTRY结构体:tqe_next是指向下一个元素的指针,tqe_prev是一个二级指针,指针变量的地址,是前一个元素的tqe_next的地址,解引用(*tqe_prev)之后就是本元素的内存地址;TRACEBUF是一个调试相关的宏,我们先不管它。举例: 我们声明一个结构体,这个结构体只有一个int型整数,还有前驱和后继指针。 struct int_node{ int num; TAILQ_ENTRY(int_node); }; 宏展开之后就变成: struct int_node{ int Continue Reading »

debian下安装curl loader压力工具出现crypto.h的错误

FreeBSD的编译环境跟linux差别怎么这么大,很多时候gmake编译源代码都出错,很无奈啊;最近用到一些http的测试工具,源代码安装,在FreeBSD上源代码安装很难成功,依赖关系残缺不全,用ports安装也不省心,果断用debian linux。 找个能支持ipv6的压力测试工具真是难啊,tsung貌似很强大,也符合要求,但是BSD7上通过cli安装tsung好麻烦,新的ports还要java的license认证,麻烦加无语啊,后来找来找去,貌似curl loader很符合要求,能做ftp和ipv6的压力测试,果断安装,但是debian上源代码编译有如下错误: ssl_thr_lock.h:27:28: error: openssl/crypto.h: No such file or directory 本以为安装openssl就行了,但是谷歌发现,需要安装openssl-devel,debian的包名叫libssl-dev,安装之后就OK了。这种错误让新手很无语加蛋疼,权且记录下来,让需要的人少走些弯路。

启动Aptixia IxLoad出现错误

启动Aptixia IxLoad可能会出现如下错误: Setting CurrentDirectory = C:\Program Files\Ixia\IxLoad\5.0-EA\Client Loading resources… Using database: (local)\IXIA2005\IxLoad_5_0_117_28 Resources loaded OK. *************************** GetPathToDlls from IXLOAD: ‘ixload’ ************************Loading EX python23 from C:\Program Files\Ixia\IxLoad\5. 0-EA\3rdParty\Python2.3\python23.dll ************************Loading EX wintypes from C:\Program Files\Ixia\IxLoad\5. 0-EA\3rdParty\Python2.3\DLLs\pywintypes23.dll ‘import site’ failed; use -v for traceback warning: integer multiplication Application Error: ——————————————————————————– Exception Type: exceptions.KeyError Exception Description: ‘WINDIR’ Exception Stack: Continue Reading »

命令行测试ssl回话

工作到现在,经常在和HTTP协议打交道,所以HTTP相关的开发工具和调试工具是必备的;平时工作中调试bug的时候,一般都是调试单个回话的居多,所以经常使用telnet调试HTTP会话,telnet虽然功能极其简单,但是也极其的强大,因为你可以构造任何http header给服务器,这样你就可以研究各种条件下http服务器的返回内容;下面的一个例子。 但是telnet不支持ssl,需要这样测试https,怎么办,用openssl的s_client客户端就可以了,前提是你安装openssl: openssl s_client -connect www.example.com:443 如下图:   参考资料: 1.http://www.bearfruit.org/2008/04/17/telnet-for-testing-ssl-https-websites/ 谷歌搜索关键字telnet ssl,这是第一篇文章,也是从这里学到的; 2.http://www.ibm.com/developerworks/cn/linux/l-cn-sclient/index.html 这篇来自ibm的文章列举了openssl的s_client客户端的几个高级用法; 3.http://www.blogjava.net/ycyk168/archive/2009/11/27/303946.html 这篇博文举了几个s_client应用的简单例子; 4.http://www.openssl.org/docs/apps/s_client.html 这是openssl s_client客户端的官方手册。

配置你的firefox,让开发和测试工作变得更方便

今天终于知道了为什么firefox是开发利器,不仅对于前端开发工程师来说重要,对于web开发人员来说用处也非常大,因为它具有高度的可配置型,这里举几个例子,配置在工作中我经常用到的几个参数。 在firefox的浏览器地址栏里面输入:about:config,然后配置相应参数。 1.favicon.ico文件 当你用firefox进行简单http测试的时候,很多情况下你会用wireshark等抓包工具观察报文情况,你会发现,一般都会多出几个和favicon.ico 有关的404会话,这是很烦人的,它会打扰你分析问题;因为正常情况下,firefox会到根目录取favicon.ico文件, 你可以配置这两个参数:browser.chrome.favicons,browser.chrome.site_icons;让它禁止读取favicon.ico这个文件。如下图所示 。   2.http请求的版本 这久一直在修复几个和http版本相关的bug,具体情况是,当http请求的版本号和http响应的版本号不一致的时候,系统无法正确处理压缩编码的内容,测试的时候需要发送不同的http请求版本,可以双击修改这个参数:network.http.version;如下图所示。 3.Accept-Encoding头的值 你可能需要发送不同的编码值,例如,gzip,deflate,identity等等,你可以双击修改这个参数:network.http.accept-encoding;如下图所示。

Page 4 of 21« First...23456...1020...Last »