发布新日志

  • 博客搬家

    2008-11-18 11:30:53

    博客已经搬家很久了,本来打算把这里当作测试的家,但是,实在高估了自己的勤劳呵呵~

    从hotmail搬到这里,争取并行,又搬到网易

    近一年来,都在做通讯类的项目,涉及的协议较多,最近陆续在总结贴出来,感兴趣的朋友们,来我网易博客吧

    http://blog.163.com/mmhao_54

    公司不能上线,急事联系我,只有邮件可以,偶尔还会断。。。

    邮箱:lum@zctt.com

     

  • 小谈SIP测试工具

    2008-02-29 16:55:22

    1、最经典、最好用的——X-lite

        eyebeam共同使用可以增加一个登录的座席,问题是这两个都不允许同时打开多个,但却是最稳定最可靠地

    2siplite

        建议大家可以小用一下,但是极不稳定,至少我的XP系统用起来如是,它有一项值得关注的优点——可以登录多个,但是问题在于它常常显示被叫而不能接听电话

    3sip X phone,又名sipfoundry

        我相信它的功能应该很强,可设置性很高,不过真的很繁琐,不推荐

    4Minisip

        倒是不大,当真迷你,就是缺少文件~提示找不到libatkmm-1.6-1.dll

    5libphone

        小而且方便,不过貌似只有呼出功能的说~,操作很简单,在页面中写入被叫号码@<remoteIP>”即可

     

    6、Gips

           同样只能同时呼叫一个号码,当呼叫第二个的时候会自动断开第一个,配置起来还算简单,各方面可与x-lite媲美 GIPS配置三步本人才疏学浅就只用过这几个~嘿嘿   

  • LoadRunner结果分析向导2

    2008-02-29 16:17:09Digest 3

    Retries per Second

     

     

       每秒重试图表显示了测试中某一时刻服务器联接重试的数量。图中重试数数大多时刻为0,除了运行到35分钟时,每秒重试数达到0.016每秒.从上图中很难做出结论,因为这个重试的峰值很像一个与其它结果不相关的独立的事件

     

     

     

    Connections

       连接图表展示了场景中超时开放TCP/IP联接的数量。一个有超链接的HTML页面可能促使浏览器开放多个连接以打开不同的网页地址。每个网站服务器都会开放2个连接。理论上,打开连接的数量可以反映虚拟用户的运行数。

    这张图有助于发现何时需要额外的连接。例如,如果连接的数量攀升到了一个稳定期,而且事务响应时间急剧增长,增加连接可能在执行过程中导致一个戏剧性的增长(事务响应时间的减小)

     

    图中开放连接的数量在到达时间表中的ramp-down之前是不断地增长的。这表明连接的数量即使到达250个用户的压力承受度是足够的。所以,在运行25分钟左右时出现的问题一定是有其它原因。

     

    Connections per Second

    每秒连接图表显示每秒新建连接的开放与连接的关闭。通常,新建的连接会反应关闭的连接数,如图中所示。注意图中的峰值,出现在20-35分钟,与此对应的是测试中虚拟用户到达峰值的数量也持续在这段期间。而且,连接的数量在这些结果中看起来没有什么问题

     

     

    Error Statistics

    错误统计表显示了测试期间错误发生的数量,以错误代码分类。连接服务器和本地页面出错是最常出现的。这里的错误代码出现次数最高的是2636626609.在下面的图表中我们会得到这些错误的详细说明。

     

    Error Statistics (by Descrīption)

    错误统计(按类型分类)图表显示了场景或按步执行期间错误增长的数量,这里的错误按类型分类。图中有错误的描述。错误与失败的事务是不同的概念,后者不在此图中统计,因为通常情况下一个独立的错误是不会导致事务失败的。有时由于一个独立事务的失败会出现复合错误.例如,LR运行中会在每一页查找特定字符来核实这些页面是正确的显示,但如果页面没有正确显示,则找不到这个字符,这时会记录一个错误。导致页面显示失败的原因并是文本的检查出现的,而是一些其它也会被LR记录的错误

    图中绿色占了大部分,它是与“search”这个文字检查的失败相对应的。第2大的米色部分与HTTP503的状态或是“service temporarily unavailale”(服务暂时不可用)相对应。想要确定错误的原因,需要检查脚本“search”检查字的出现并分析此时虚拟用户需要哪些资源。在每个网站服务器的日志文件中查找服务器响应的503类型,如果是可用的,对确定响应的原因是可能助的。

     

     

    Errors per Second

    每秒错误图表显示了测试场景中每秒出现错误的平均值,按错误类型分类。在测试结果的分析中,这张表在确定应用程序施压时的具体情况有很大帮助。

    图中有20-35分时出现了预期中的峰值,这与其它图相对应。尽管这里没有给出错误的详细描述,但错误出现的主体是在一个确定的时段,使我们可以诊断出异常的行为。下一步可以检查应用程序及数据库组在20-30这一时段产生的各种日志文件。

     

     


    Errors per Second (by Descrīption)

     

    每秒错误(按性质分类)图展示了场景或会话按步运行中,每秒错误的平均数,以错误的性质分类。错误的性质在词汇汇总中有描述。

    深蓝色的错误与相同的“Search”这个词的文本检查相对应,而浅蓝色的错误与同样的HTTP状态代码503相对应。相同的查询可以用在诊断这些错误出现的原因上。


    Errors per Second – Running Vusers

    每秒错误数—运行的虚拟用户图表显示的是每秒的覆盖和错误以及在图表Y轴对面显示运行的虚拟用户

    你可以用这张图看到在虚拟用户和每秒错误的数量中是否存在某种关系。

    明显在,在运行到20-35分钟时是存在一些关系的。大概从200个虚拟用户开始,错误的峰值达到最大每秒出现15个,并持续到该压力期间的结束,直到35分钟运行到ramp-down为止。

    从这些结果中判断问题的下一步就是要在检查在发生错误的时间段内所有有用的日志文件,并且,如果需要的话,可以改变或更新硬件的物理配置以改善性能,并需要返测以证实这些变化是否与期望一样。

  • 舍的代价

    2008-02-29 16:08:15

    舍得~舍得~有舍才有得

    但只有真正舍的人才知道舍的痛

    打舍得的时候,总是不小心打成值得,因为字码相同,但不见得舍得的就都值得

    若是知了舍的痛,就当珍惜得甘

    想要在事业上有长期可持续的发展远景,必要把握现在,合理规划,努力实现——缺一不可

    如果让你离开现在的工作环境,给你提供良好的学习机会,你是否愿意呢?

    如果这机会是需要代价的,那么你又能承受多少呢

    如果让你把握住它,但却要把自己放低——完全放低

    不仅仅是降一点薪而已

    包括很多很多……

    你会失去很多

    离开你的同事、你已经非常熟悉的环境

    失去你的与朋友一起工作的机会,失去已经得到的赏识与信任

    走出温暖的花房,又有谁能够义无反顾地大步向前,毫无犹豫?

    更现实的部分还有:你的公积金变成原来的一半不到,你的奖金和补助全部砍掉,你的新环境待遇没有比现在更具竞争力,而且在2个月的试用期里,你只能拿到80%的工资……

    这意味着什么?

    意味着你必须由奢入俭!

    在本来就没有积蓄的情况下,在已经娇嫩后,仍然要面对风吹雨打

    如果是这样,你会放弃温室而就风雨还是慢慢在没有希望的环境中看不清自己?

    我呢,我是不舍

    这200多个日子里,我付出了全部的精力扮演好自己的角色,到头来却中途退场选择了一条需要重新再来的路

    值得么,离开生了根的地方,得到的只是一张躺在邮箱里的纸,上面的数字不是少个零就是压根不存在

    真不甘心呵~

    我不能是风风光光走出去的,似乎没有什么可以炫耀,我是灰头土脸走掉的,放弃了原本的光环,等待我的是求知的路

    值得么?

    我并不知道,至少在我身处新环境之前,我无从衡量

    我只知道,如果我希望下一次在选择的时候没有这么不舍,不需要付出这种代价,就必须在新的环境中立有一席之地,有更多选择机会,提高自己才能改变未来

    一直以来,走事业的路都没有办法回头

    以往的经历令我骄傲,因为我从来没有在大的决定上出错

    至于这次……

    只是在想,待遇上的严重落差是否会影响新环境的工作心态?

    当然,路都是人走出来地,世上本没有路,走的人多了,也便成了路

    只要我按着职业规划,不违背原则,走下去,久了许是也就成了路

  • 不舍1

    2008-02-29 16:07:25

    如果短暂离开生活过的城市,那种心情叫做不舍,那么永远地离开工作了半年多的环境,又该用什么词?

    我想我没有很好的创意,所以我不是广告策划,而是一个本本份份的工程师

    根据CMMI流程中已经习惯的方法对标题进行编号处理,这种处理规则是默认第一是零,可忽略编号,第二以后递增。

    我熟悉的桌子、电脑、日历本,还有每天会响的座机与IP电话~

    这个现实的世界里,能够永远的越来越少,呵~我一次就得到三个:

    这个舒服的工作环境,我永远也不能回来了;

    这些熟悉得似乎有了感情的物品也永远见不到了,我的同事——我的朋友们,永远都不可能再跟大家一起共事了

    这些各有所长的可爱的人,我在每个人身上都学习到了珍贵的品质,那些对工作的热忱、对技术的沉迷……还有无数次讨论中说服了我和被我说服的

    不知道是否每个离开公司的人都会有这种离别的愁绪,至少我还没有办法感受不到

    但凡,我还可以看得到希望,也是不会走的

  • 黑格尔的“正反和”三段论

    2008-02-29 16:06:48

          "正反和"三段论的意思是说,人对事物的感受,往往会先"正"后"反",最终达到"和"的境界。比如说,我们小时候觉得世界充满温情,而长到十几岁的时候会觉得成人世界充满虚伪和欺骗,这就是我们常说的"愤青"(愤怒青年)。当我们长到三十岁左右的时候,我们进入了"正反和"的状态,认识到人生中有温情也有欺骗。再比如,人们在恋爱之初,总觉得对方像天使,结婚之后却发现对方有很多"魔鬼"缺点,只有在磨合了三五年之后,彼此才能进入"和"的状态。
      所以,当你对进入某一间公司充满期待的时候,要冷静地提醒自己:自己可能处于"正"的状态下,未来一定会有不尽如人意之处。当你进入了公司,发现自己的失望越来越多的时候,要再次提醒自己:自己可能处于"反"的状态下,事情不可能真的这么糟糕。

  • 春节票务小m所思

    2008-02-29 16:05:45

    说不出是高兴还是苦恼,反正是正点返京了,总是庆幸吧~

    在放初六票的前一天5:00,我来到吉林铁路售票大厅,人山人海里,找到了三个北京售票窗口

    好像是个到处充斥着焦急和不满的地方

    据一个排到20几号的男子说:昨天排初五票的时候,这三个窗口,每个口只放六到七张票,就说卖完了,上百个群众苦苦等了一夜,哪肯如此罢休,相应的部门倒是有手段,派了一个连长,带着一批武警来镇压,才没闹事;今天上午在这排着的时候,旁边见有个女的手里拿着咱要排的初六的票,两张卧铺!!咱们呀,是没戏了,不行再排一天,人家提前一个月就把这车的票卖完啦,到咱这就是意思意思,说是人家放过票啦……

    真是不信!这不知名的男子敢在这里胡说,胆子不小呵,许是为了什么不可说的原因才在这里瞎编派吧

    过了半小时,一个保安晃到这里,那男子张口就问:同志,今天能放几张票啊?不会还像昨天就那么几张吧?

    保安乍听此言,头也不回快步走掉了……

    有点怀疑呵~看来未必全是谎言

    母亲见我一人排长队,不放心,打算陪我一夜,于是更沉不住气,去排正在放票的窗口,邻队排天津的两人闲聊,再次听到昨晚就放了二十多张票的事,心里想着排到哪天算哪天了,要不这边可能也没戏

    终于,排到初二的票,心放下了,微有不甘,带着母亲回家了

    朋友在部队是个小小芝麻官,他送了一条烟,在初二那天换回一张初五硬座……

    返京时途经长春,上来的一个女孩说她提前10天在放票前正常排队,就买到了站票,显然吉林站这个始发站连站票都没有放

    而检票后直奔六车厢想碰运气补个卧铺,列车员不让上,只搪塞说没有卧铺,开车后问列车长,也是以没有卧铺一语带过,什么人这么有门路,让人家连丁点都不敢透露?如此讳莫如深,似乎正在遮掩着不可告人的秘密

    当然我们不关心是什么秘密,我们只是普通的小老百姓,我们只想能够按时回到工作中去

    然而,当群众早十几个小时去排队就为了一张票的时候,却无法如愿

    如愿的是什么人?

    不过是吃着我们百姓俸禄,被我们养活着的没用米虫!!!

    政府和军队是用来做什么的?是用来保护百姓的对么?那么为什么今时今日,我们伤心的看到委屈的百姓有苦无处诉?!

    当然了,在吉林这个丁点儿大的城市,是有些人可以随意欺人的

    要不然那吉林市长怎地就敢贪污受贿、包养情妇、私藏枪械!

    谁给了他们这权力?!

    现在已经是回来的第二天了,但仍然不敢相信有国家机构可以做得如此明目张胆,难道全中国就只有吉林这样么?

    就只有一个这吃人的市长么?这市长是刚一露出狐狸尾巴就被发现的么?

    真真的寒心~

  • 不舍

    2008-02-29 16:04:58

    在过农历年之前在北京的最后一天,很早的起床,不是别的什么酸死人的情愫,just for work

    难得跟小闯一起出门,体会到天没亮就离开被窝的痛苦

    出了小区大门,看见不远处的Google与Microsoft大厦,这一年在五道口的点点滴滴像走马灯似的掠过,说不出是什么滋味

    拿着几个大大的皮箱在夕阳下搬家,热得满头汗,气质啊风度什么的通通扔掉,狼狈得像是农民工

    来来往往购置锅碗瓢盆,质量不好的塑料袋为回程增加好多麻烦

    跟晚上摆的小摊讨价还价,即使不买也一定好好抱抱小松狮

    在路边买吃鸡蛋饼,小贩看到城管掉头就跑,我们就在后面追,抢着吃的时候,烫得呼出一团团白气

    这些事情现在仍在继续,它们并不止是过去时,也是我们正在创造的现在时

    依稀还看到小闯背着我走路的背影,还有找工作时候被鞋子磨得流血的双脚,记得第二次学聪明了,带着高跟鞋去面试,面试完再换回来,就为保持自己看起来还专业的形像,呵呵,现在才知道那时候是一肚子草,需要包装,现在慢慢地向金子转变,所以再也不用那种方式包装了。

    我们在这里开怀大笑过,踌躇满志过,默默流泪过

    数不清有多少次抬起头问天:我什么时候能在这异乡有自己的一席之地,哪怕只是有个待遇平平的职位也好,让我可以在一个行业里发光发热,做出成绩。

    数不清多少次在不开灯的夜里,躲进被窝咬着牙,不哭出声

    数不清多少次天不亮就起床,半夜了还在车上

    我现在所拥有的都是之前这些“数不清”换来的,每当我听到别人在北京的学校毕业后就开始了没有悬念的职业生涯时,说不出的羡慕还是庆幸,也许都有吧,羡慕别人不必体会身在异乡,马上适应环境,尽快找到工作的这种经历,又庆幸自己走过许多人都不曾走过的弯路,造就了坚韧的性格。

    每每发现一条路走不通的时候,总不免背诵这一段:天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,增益其所不能。

    反复背诵,直到心里平静为止,告诉自己,这不过是又一次“行拂乱其所为”罢了

    许是路走的不易,也懂得珍惜,与小闯这一路相互扶持,也是对于感情的磨砺

    当真是做到了“不抛弃,不放弃”

    过程是艰难的,结果是需要长期努力的

    这一年里,经历了很多很多,最大的成就就在于找到了自己将来要走的路,明年就是为走好这条路而继续努力。

    二十六岁的女人已经不年轻了,工作、家庭都得有,都得做好。

    在三十岁之前想要作为一位技术很牛的测试经理,还有很长的路要走。

  • 当我们老去……

    2008-02-29 16:04:15

    常常在朝阳下看到相携的老夫妻蹒跚而行,那情景什么时候想起来都觉得心里暖暖的

    夕阳、长椅、互相倚靠的身影渐行渐远,被拉成长长的影子,整个天空的颜色熨烫着心灵

    很常出现在人们眼中的情景,却永远没有人嫌俗,因为这几乎可以满足一个人对人生所有的希冀

    用四个字来形容就是

    天长地久

    多么美好的四个字啊,年轻的时候许是也经过矛盾、争吵、分离什么的,说不定还出现过第三者,那时的意气之争现在看来似乎也可以一笑置之了

    人人追寻的幸福也不过如此,可能就在我们的身边,可能正是你们的父母、师长,也许——也许也可以是我的父母

    幸福是不需要遗传的,认识小闯之后我就知道了

    当人们老去,年轻时的争执就变得没有意义,可以多活一天,多呼吸一天,已是难得,很多事情似乎就没有那么重要了,无需计较,因为明白了得到的也早晚有一天要放手。

    在那有夕阳有长椅的影像里,不知道最终是否会变成我们故事的结局……

  • 面试知识累积

    2008-02-29 16:02:26

    只说以前未知地~

    1、group by 与 having 一起组合

    having一定写在group by的后面,并且,guoup by 有时是不能与where一起使用的。

    要看是单函数还是组函数,where语句用于单函数,having用于组函数,如sum(xx)

    where与select同用时,where后面不能带函数

    where语句与group by 同时使用,where在前,having可以过滤组函数结果或是分组的信息,且写在group by子句后。

    如select a,sum(b) from table group by a having sum(b) >10000

    2、TCP/IP协议

    采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为:

    应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。
    传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。
    互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。
    网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。

    3、SIP协议

    SIP是一个应用层的控制协议,可以用来建立、修改、和终止多媒体会话(或者会议)例如Internet 电话。

    SIP不是一个垂直集成的通讯系统。SIP可能叫做是一个部件更合适,它可以用作其他IETF协议的一个部分,用来构造完整的多媒体架构。

  • LR测试积累[原创]

    2008-02-29 16:01:33

    正在积累中……

    一、hits per second/throughput的由来

    1、每秒点击率是客户端向服务器发送的请求数,也就是说如果客户端进入了软件系统的界面,那么该界面上的所有图片和控件都会分别作为一次点击数。

    2、吞吐量是服务器发送给客户端的数据量,而不包括客户端发送给服务器的请求等。

    二、迭代方式

    1、 Iteration Number
    Iteration Number用当前的迭代数目替换参数。
    2、 Random Number
    Random Number用一个随机数替换参数。通过指定最大值和最小值来设置随机数的范围。
    3、 Unique Number
    Unique Number用一个唯一的数字来替换参数。你可以指定一个起始数字和一个块的大小。

    三、迭代中使用关联参数化方法

    注:一定要在参数的文本文档中有回车符

    1、 建立一个参数A后,欲使另一参数B与之关联,在参数表中的select next row设置为the same line as A

    2、 如图设置

    图1

    图2

    四、标准偏差值STD

    标准偏差(Std Dev,Standard Deviation) - 统计学名词。
    一种量度数据分布的分散程度之标准,用以衡量数据值偏离算术平均值的程度。标准偏差越小,这些值偏离平均值就越少,反之亦然。标准偏差的大小可通过标准偏差与平均值的倍率关系来衡量。
    标准偏差公式:S = Sqr(∑(xn-x拨)^2 /(n-1))
    公式中代表总和,x拨代表x的算术平均值,^2代表二次方,Sqr代表平方根
    例:有一组数字分别是200、50、100、200,求它们的标准偏差。
    x拨 = (200+50+100+200)/4 = 550/4 = 137.5
    S^2 = [(200-137.5)^2+(50-137.5)^2+(100-137.5)^2+(200-137.5)^2]/(4-1) =[62.5^2+(-87.5)^2+(-37.5)^2+62.5^2]/3 =[3906.25+7656.25+1406.25+3906.25]/3 = 16875/3 = 5625
    标准偏差 S = Sqr(5625) = 75   

    该值用于衡量LR的曲线图中所选取的若干点的值之间的偏差大小,如果超过一定标准,则说明软件过于不稳定。

    五、SAP/SDP

     SAP (Session Announcement Protocol )::会话通告协议。RFC2974,主要的作用就是告诉接收者,要多播一些什么内容。没有定义描述的格式

    SDP:(Session Descrīption Protocol):会话描述协议。 规定了格式,就是对会话的必要信息如何编码,不过不包括传输机制和协商参数。 SDP语法,采用文字,而不是ASN.1。一个SDP会话描述以会话级信息 和 媒体级信息开始,如果出现一个,另外一个接着后面出现。

    六、合并图和关联图

    将两个图联系起来,就会看到一个图的数据会对另一个图的数据产生影响。这称为将两

    个图关联。例如,您可以将正在运行的 Vuser 图和平均事务响应时间图相关联,来了解

    大量的 Vuser 对事务的平均响应时间产生的影响。

    1 在图树中单击“正在运行的 Vuser”,查看正在运行的 Vuser 图。

    2 右键单击正在运行的 Vuser 图并选择“合并图”。

    3 在“选择要合并的图”列表中,选择“平均事务响应时间”。

    4 在“选择合并类型”区域中,选择“关联”,然后单击“确定”

    七、录制脚本方法

    1、Sniffer方法:利用以太网的广播特性。嗅探器。但要求客户机与服务器在同一网段。

    2、Proxy方法(代理):客户端发送到Vugen,再由Vugen发送给服务器。在客户端与服务器之间增加了LR。

    八、客户端永远是发送请求,而服务器处理

    LR录制的record log里面与工具charles以及实际网页文件的大小都是一致的。

    九、录制模式HTTP/URL

    Html-based scrīpt(browser/context sensitive)把隶属于一个页面的数据放在一个模块中。

    URL(http/analog)真实记录C/S之间全部过程。

    2种方式的使用:WEB或B/S结构控件过多的flash等,应使用HTML方式。可以浓缩。可读性好。实质上是一样的。

    HTML记录的是web_submit_form

    URL是web_submit_data,且支持控件。

    十、常见错误

    1、录制的脚本为空/录制出错/无法打开首页等:

    空:协议选择错误/非B/S操作/打开页面时页面从缓存取出的,也是无法录制下来的/

    使用代理/IE使用选项/有恶意代码(检测使用工具:AD-AWARD)/bofu防火墙或防病毒软件

    录制出错:出错时使用CODE VIEW,即使出错也能把代码记录下来,而使用TREE VIEW则会停止记录

    打开空网页:VUGEN有问题/LR安装路径BIN下Registe_vugen.bat(重新注册一次可能修复)

    2、脚本出错

    十一、协议选择

    LR8中单协议HTTP,在IE中设置一个7777localhost端口,C与B之间都由7777连接,采集所有信息;多协议中单选HTTP协议,指定端口的影射

    判断协议工具:PROCESSSPY(正在使用的.DLL分析使用的协议)

    十二、关联

    是服务器到客户端的数据,函数web_reg_save_param(“param name”,<list of attributes>*,last)

    “param name”是参数名,list of attributes分为三部分:“LB=”“RB=”“ORD=”,分别指左边界、右边界和符合条件的第一个,最后一个可以写ORD=ALL,意为全部取出来。而LAST没有,写LB/RB时,写入引号需要转义符。

    十三、思考时间

    没有:压力会大一些

    有:压力会小一些但会比较符合实际等待时间

    十四、.net内存分析

    1、堆栈——放的是局部变量、方法参数、返回值和其他临时值

    2、托管堆——0级、1级、2级,用于分配托管对象的区域,也是垃圾回收器区域

    3、非托管堆——用于运行时数据结构、方法表、microsoft中间语言(MSIL)、JITed代码

    垃圾回收器只是回收了托管堆的内存,堆栈是自动释放的,非托管堆由非托管堆内代码自动控制,而托管堆也有可能内存泄露

    .net常用性能测试指标:

    1、Process/Private bytes一个进程所独占的内存是多少,无法跟其他进程共享

    2、.net CLR Memory/#Bytes in All Heaps托管堆内总使用内存数

    3、.net CLR LocksAnd Threads/# of current logical Threads,在.net运行过程中所使用的线程,注意:线程里面所使用的内存是在堆栈里面分出来的

    举例

    a)1不让其增长,2没变,可能是非托管堆性能有问题,因为整个内存增加,而托管堆内存的没有变的

    b)3增长,1增长,线程泄露,导致内存泄露

    c)

    堆栈内存泄露(StackOverflowException)

    可能引起堆栈内存泄露的原因:

    1、栈资源并且从不返回的方法调用

    2、线程泄露

    每分配一次堆栈后没有回收回来,就是线程泄露,严重会出现StackOverflowException异常

    最新的桌面机与服务器版的WINDOWS堆栈大小为1MB

    3、托管堆的内存泄露

    大对像的内存碎片——如果在栈中申请有9千个字节,它不会放在堆栈中,而是在堆中。.net不会做压缩处理,不断地申请回收,可能会出现内存碎片问题导致泄露

    不必要的根引用

    中年危机

    使用工具CLEprofiler.exe,不断申请回收大字节进行监控

    十五、LR解密

    Lr_decrypt,把加密函数进行解密

    Action()

    {

    Char *str=”abc”

    Char *str1;

    lr_load_dll(“encode1.dll”)// 加载动态连接库,encode1.dll是.dll文件名

    str1=(char *)crypt_encrypt(str)//调用接口将字符变量str放到.dll文件中去,crypt_encrypt //Dll文件发布了一个接口

    lr_output_message(“encrypted=%s”,str1);

    lr_out_message(“%s world”,lr_decrypt(str1); //解密

    加密的话需要用外部的加密方法,使用LR自带工具或自己编写.DLL文件。

    十六、写入错误的用户名和密码不出错

    加检查点

    要insert的地方右键addstep/ web_reg_find/增加search test/

    文件。

  • 常用Linux语句备份

    2008-02-29 16:00:41

    1、查看系统服务开启情况

    chkconfig --list

    2、修改系统配置

    setup

    3、查看是否存在rstatd

    rpm -qa|grep rstatd

    4、安装rstatd包

    yum install *rstatd*

    5、开放Linux端口

    iptables -a input -p tcp --dport 8888-j accept

    iptables -A INPUT -j DROP

    6、查看存在的java进程

    ps -ef |grep java

    7、运行.sh文件

    ./shutdown.sh

    8、查看asterisk

    asterisk -r

    sip show peers或sip show peer 3577

  • 我们这里还有鱼?

    2008-02-29 16:00:01

    冯雷走了

    中午喝酒的感觉是难得的不痛快~不是气氛不好,不是一起喝的人不好~,只是

    只是不希望见到这样一个优秀战友的离开

    整个中午和下午的会议中,都在谈论先驱和先烈的问题,看似一切好聚好散,但心里就是不爽快

    回想起冯雷初来伊始,一个二十来岁年轻人的样子,愣愣的^^,就一面就知道是谈得过的朋友

    似乎还能感觉到他的身影就在旁边或等着跟我讨论项目需求,或是与其它人讨论实施细节……好像很普通,但就是普通得让人安心

    因为知道自己处理不了的事总会在这个人的身上找到解决方法,或是一起分析找到出路,或是一句“我来办”

    这段时间内,似乎一来到这里就进入了状况,一进入状况就开始马不停蹄,常常加班到办公室只剩下自己

    在提及他来到的近半年的时候,自己也惊了一下:竟在不知不觉间跟这个当初项目组引颈期盼许久的项目经理共事了这么久

    他的离开貌似对我们是有好处的,但我相信这个组内的所有人都宁愿没有这好处

    这样一个有执行力、有亲和力、有沟通力、有责任感的产品经理~对下一任可能有点压力的

    而在这好处背后,问题仍然存在:领导与高层的沟通、项目的需求……

    想这些似乎是无谓的~不是我们这些最底层的人可以改变的

    只是在最后,希望冯雷能够找到一家更得实权的公司,能足够信任他、重用他,给予他所需要的资源,放手去做

    一如韩愈,在他人眼中未见其雄才大略,而得汗王刘邦重用,委以大将军,统领全军,大破楚霸王

    若冯雷得遇刘邦,相信定能大展宏图!

  • CHM的制作工具

    2008-02-29 15:57:55

    作为测试工程师的MM第二次在工作中制作CHM文件
     
    遇到了之前就知道却没有解决的问题——easy chm的确很好用,但是不能改变HELP文件的标题~也许是MM没有发现吧~
     
    后来依次试过 VisualCHM和pocket chm,Visual CHM也遇到了和easychm一样的问题,标题固定为HTML HELP~,无奈了明天可是要交的哦,而pocketchm真的是非常不错地,就是没注册的人只能望着超出10页之外的部分兴叹~,在这里要提醒广大网友,关于pocketchm的什么破解版、注册版和注册码……一律无效,在下了10多个不同说法的软件之后MM对免费使用pocket的想法绝望了……
     
    终于在1个小时的摸索下找到了噔噔噔噔~quickchm!!
     
    这个软件没有注册时可以作20页(当然其它版本可能不受限制),最后,还是Adobe的RoboHelp解决了问题,而且生成的文件没有其公司信息,不必考虑版权问题,吼~~~
     
    其实还是蛮担心,测试没有全部完成就先给其它企业试用会不会太赶了些?质量和一时的收益哪个更重要呢?也许这个问题恰巧就可以回答国内企业对测试不够重视的原因吧~
  • WinDbg的学习

    2008-02-29 15:56:02

    Debugging Tools for Windows,WinDbg是微软一个free的测试软件,可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件。

    2007-12-5

    一、下载地址:http://www.microsoft.com/whdc/ddk/debugging/installx86.mspx                  (32bit)

                 http://www.microsoft.com/whdc/ddk/debugging/install64bit.mspx                 (64bit)

    symbol地址:http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx

    二、配置

    安装不必多说,正常的下一步就OK了

    下载后不需更多配置,只要打开软件,File/attach to a process...即可在当前运行的程序中选择欲测试的。

    三、命令

    • .hh  [命令]

    帮助命令,相当于DOS下help,只写.hh,弹出帮助文件,而.hh bl 列出bl命令的用法。

  • 转载——测试工具小计

    2008-02-29 15:53:13

    网站压力测试工具集


    工具 相关网址
    LoadRunner http://www.mercuryinteractive.com/products/loadrunner/
    SilkPerformer http://www.segue.com/products/load-s ... nce-testing/index.asp
    QALoad http://www.compuware.com/products/qacenter/qaload.htm
    WebLoad
    OpenSTA 开源
    Jmeter 开源

    自动测试工具集

    工具 相关网址
    WinRunner http://www.mercuryinteractive.com/products/winrunner/
    SilkTest http://www.segue.com/products/functio ... l-testing/silktest.asp
    QARun http://www.compuware.com/products/qacenter/qarun.htm
    SAFS http://safsdev.sourceforge.net/Default.htm

    Bug追踪系统
    工具 相关网址
    JIRA http://www.atlassian.com/software/jira/
    Bugzilla http://www.bugzilla.org
    TestDirector http://www.mercuryinteractive.com/products/testdirector/
    GNATS http://www.gnu.org/software/gnats/
    TestTrackPro http://www.seapine.com/ttpro.html

    软件测试网站
    http://www.51cmm.com
    http://www.sqe.com
    http://www.qadirect.com
    http://www.bonoy.com
    http://www.sztest.net
    http://www.testage.net
    http://www.sqatester.com
    http://www.testingfaqs.org

    软件测试工具集锦见正文

    类型 名称 公司 网址
    测试设计工具
    ALLPAIRS http://satisfice.com/
    Caliber-RBT http://www.tbi.com
    Caliber-RM http://www.tbi.com
    DARTT http://home.t-online.de/home/bsse.info/
    Datatect http://www.datatect.com
    DGL http://www.csee.usf.edu/~maurer/
    McCabe Test http://www.mccabe.com
    McCabe TestCompress http://www.mccabe.com
    Multi http://www.testing.com/
    Panorama C/C++ http://www.softwareautomation.com
    Reactis Tester http://www.reactive-systems.com
    TDGEN http://www.soft.com/Products/index.html
    T-VEC Test Generation System http://www.t-vec.com
    GUI测试驱动器 Android http://www.smith-house.org/open.html
    Atesto Functional Testing Service "http://www.atesto.com/
    "
    AutoTester for Windows http://www.autotester.com
    AutoTester for OS/2 http://www.autotester.com
    CAPBAK http://www.soft.com/Products/index.html
    Certify http://www.worksoft.com/
    CitraTest http://www.tevron.com
    e-Monitor http://www.empirix.com/
    e-Tester http://www.empirix.com/
    eValid http://www.e-valid.com/
    imbus GUI Test Case Library http://www.imbus.de
    QARunTM http://www.compuware.com/qacenter
    Panorama-2 "http://www.softwareautomation.com
    "
    QC/Replay http://www.centerline.com
    QES/EZ for GUI http://www.qestest.com
    Monitor Master http://www.argogroup.com
    SilkTest http://www.segue.com
    Smalltalk Test Mentor http://www.silvermark.com
    Test Now http://www.stlabs.com/
    TestQuest Pro Test Automation System http://www.testquest.com
    TestRunner http://www.qronus.com/
    WinRunner Mercury Interactive http://www.merc-int.com
    xrc - X Remote Control http://www.absol.com/
    Xrunner http://www.merc-int.com
    负荷和性能工具 ANTS - Advanced .NET Testing System http://www.red-gate.com/

    Atesto Automated Load Test http://www.atesto.com/
    AutoController http://www.autotester.com
    AutoController with Virtual DirectTest http://www.autotester.com
    Benchmark FactoryTM http://www.quest.com
    Capacity Calibration http://www.capcal.com
    Chariot? http://www.ganymedesoftware.com
    CYRANO ServerPack http://www.cyrano.com
    e-Load http://www.empirix.com/
    FORECAST http://www.facilita.co.uk
    ITF - Internetworking Test Facility http://www.acomtech.com
    Load http://www.pushtotest.com
    Load Runner Product Family http://www.merc-int.com
    Microsoft Web Application Stress Tool (WAS) http://webtool.rte.microsoft.c
    om/
    NetPressure http://www.syntheticnets.com
    PegasusTM http://www.ganymedesoftware.com
    Portent http://www.loadtesting.com
    preVue-ASCII http://www.rational.com/products/prevue/
    preVue-X http://www.rational.com/products/prevue/
    "PureLoad
    " http://www.minq.se
    QALoadTM http://www.compuware.com
    Rational Suite PerformanceStudio http://www.rational.com/products/pstudio/

    "Rational SiteLoad
    " http://www.rational.com/products/siteload/
    RemoteCog Product Family http://www.fiveninesolutions.com
    Scapa StressTest for Citrix MetaFrame http://www.scapatech.com
    SilkPerformer http://www.segue.com/
    Teleprocessing Network Simulator http://www.networking.ibm.com/tns/tnsprod
    .htm
    WebLoad 3.0 http://www.radview.com
    Web Roller http://webapplicationstesting.com
    Webserver Stress Tool http://www.paessler.com
    WebSpray http://www.redhillnetworks.com
    非GUI测试驱动器 "AdaTEST
    " http://www.qcsltd.com
    ANVL http://www.midnight.com/
    AutoAdviser http://www.autotester.com
    AutoTester Client/Server for use with SAP R/3 http://www.autotester.com
    Cantata http://www.qcsltd.com
    "CONVEX Integrated Test Environment (CITE)
    " http://www.cirr.com/
    CTA++ http://www.testwell.fi
    CTB http://www.testwell.fi
    ITF - Internetworking Test Facility http://www.acomtech.com/
    OTF - An Object Testing Framework "http://www.mcgsoft.com/
    "
    QADirector? http://www.compuware.com/qacenter
    "QCIT
    " http://www.qistest.com
    QES/Architect http://www.qestest.com
    QES/EZ http://www.qestest.com
    QMTest http://www.codesourcery.com/
    SilkPilot http://www.segue.com
    SMARTS http://www.soft.com/Products/index.html
    SDTF - SNA Development Test Facility http://www.acomtech.com
    TALC2000 http://www.talc2000.com
    TBGEN http://www.testwell.fi
    TEO http://www.gako.fr
    Test Manager http://www.launchsoftware.com
    Test Mentor - Java Edition http://www.javatesting.com
    Test Library Manager http://www.autotester.com
    "Test Station
    " http://www.autotester.com
    TestWorks http://www.soft.com/Products/index.html
    VectorCAST http://www.vectors.com
    VersaTest http://www.softsell.com
    测试实现工具 Access for DB2 http://www.princetonsoftech.com/
    Aprobe http://www.ocsystems.com
    Aqtest http://www.automatedqa.com/
    BoundsChecker compuware http://www.numega.com/
    C++Test http://www.parasoft.com
    DateWise FileCompare http://www.datewise.com/mt
    dmalloc http://www.dmalloc.com/
    EXDIFF http://www.soft.com/Products/index.html
    "fakesmtpd
    " http://www.jera.com/
    "FREstimate
    " http://www.softrel.com/
    HeapAgent http://www.microquill.com
    InCtrl5 http://www.zdnet.com/downloads/stories/info/0,77424,.html
    JSUnit http://www.edwardh.com/jsunit/
    Junit http://www.junit.org/
    MDBDiff http://jupiter.drw.net/matpie/PBS ... ts/retired/MDBDiff.h
    tml
    Move for DB2 http://www.princetonsoftech.com/
    mpatrol http://www.cbmamiga.demon.co.uk/mpatrol/
    "ObjectTester
    " http://www.obsoft.com
    Inuse http://www.parasoft.com
    Rational Purify http://www.rational.com/products/purify_unix/index.jtmpl

    Rational Test RealTime http://www.rational.com
    SilkRealizer http://www.segue.com
    WhenToStop http://www.softrel.com/
    ZeroFault http://www.tkg.com
    测试评估工具 AdaTEST95 http://www.qcsltd.com
    Aonix Validator/Req http://www.aonix.com/
    C-Cover http://www.bullseye.com
    Cantata++ http://www.qcsltd.com
    CodeTEST http://www.amc.com
    CTC++ http://www.testwell.fi
    Glass JAR Toolkit http://glassjartoolkit.com/gjtk.html
    "Hindsight/TCA
    " http://www.integrisoft.com
    Hindsight/TPA http://www.integrisoft.com
    "Insure++
    " http://www.parasoft.com
    "Java Test Coverage
    " http://www.semdesigns.com/Products/TestCoverage/index.html
    LDRA Testbed http://www.ldra.com
    "LOGISCOPE toolset
    " http://www.telelogic.com/
    ObjectCoverage http://www.obsoft.com
    Panorama C/C++ "http://www.softwareautomation.com
    "
    Rational PureCoverage http://www.rational.com/products/purecoverage/index.
    jtmpl
    "TCMON
    " http://www.testwell.fi
    TCA "http://www.parasoft.com
    "
    TCAT C/C++ http://www.soft.com/Products/index.html
    TCAT for Java http://www.soft.com/Products/index.html
    TCAT-PATH http://www.soft.com/Products/index.html
    T-SCOPE http://www.soft.com/Products/index.html
    TestWorks/Coverage http://www.soft.com/Products/index.html
    静态分析工具 AccVerify SE for FrontPage http://www.hisoftware.com/msacc/
    Aivosto Project Analyzer http://www.aivosto.com/vb.html
    ASSENT http://www.tcs.com
    ccount "http://www.cs.umd.edu/users/cml/resources/cmetrics/
    "
    "Cleanscape lint-Plus
    " http://www.cleanscape.net/stdprod/lplus/index.html
    ClearMaker http://www.balthazar.hu
    "CMT++
    " http://www.testwell.fi
    CodeCompanion http://www.jenssoft.com
    CodeSurfer http://www.grammatech.com
    "Dependency Walker
    " http://www.dependencywalker.com/
    floppy/fflow http://netlib2.cs.utk.edu/floppy/
    ftnchek http://www.dsm.fordham.edu/~ftnchek
    Hindsight/SQA http://www.integrisoft.com
    Krakatau http://www.powersoftware.com/
    McCabe QA http://www.mccabe.com
    METRIC http://www.soft.com/Products/index.html
    ObjectDetail http://www.obsoft.com
    CodeWizard http://www.parasoft.com
    Jtest http://www.parasoft.com
    PC-lint/FlexeLint http://www.gimpel.com/
    PC-Metric http://www.molalla.net/~setlabs
    PolySpace Verifier http://www.polyspace.com
    Plum Hall SQS http://www.plumhall.com
    QA C http://www.prqa.co.uk
    QA C++ http://www.prqa.co.uk
    "QA Fortran
    " http://www.prqa.co.uk
    "QStudio Java
    " http://www.qa-systems.com
    Safer C Toolset http://www.oakcomp.co.uk/SoftwareProducts.html
    SofAudit http://www.soring.hu/index.html
    STATIC http://www.soft.com/Products/index.html
    TestBed http://www.easternsystems.com
    TestWorks/Advisor http://www.soft.com/Products/index.html
    缺陷跟踪工具 1CR http://www.plus-one.com/+1CR_fact_sheet.html
    Aardvark http://www.red-gate.com/
    AdminiTrack http://www.adminitrack.com
    Alcea Fast BugTrack http://www.alceatech.com/
    AllChange 2000 http://www.intasoft.co.uk/intasoft/
    BugAware http://www.bugaware.com
    "Bugbase 2000
    " http://www.threerock.com
    "Bugcentral.com
    " http://www.bugcentral.com/
    BugCollector Pro http://www.nesbitt.com/
    Bug/Defect Tracking Expert http://www.bug-defect-tracking-expert.com/
    "Buggit
    " http://www.pb-sys.com/
    Buggy http://www.novosys.de/Buggy/Buggy.html
    "Bugzero
    " http://www.websina.com/bugzero/
    Bugzilla http://www.mozilla.org/projects/bugzilla/
    "Census
    " http://www.metaquest.com/
    "ClearQuest
    " http://www.rational.com/products/clearquest/
    CustomerFirst http://www.custfirst.com/products.html
    Debian Bug Tracking System http://www.chiark.greenend.org.uk/~ian/debbugs/

    Defect Tracker (New Fire) http://www.newfire.com/
    Defect Tracker (Pragmatic) http://www.Pragmaticsw.com/Pragmatic/DefectTrac
    ker.asp
    Defect Tracking System (DTS) http://www.open.com.au/dts/
    "defectX
    " http://www.defectx.com/
    DevTrack http://www.techexcel.com/
    "d-Tracker
    " http://www.empirix.com/
    elementool http://elementool.com/
    "ExtraView
    " http://www.extraview.com/extraview_home.html
    FogBUGZ http://www.fogcreek.com/FogBUGZ/
    JitterBug http://samba.anu.edu.au/cgi-bin/jitterbug
    Keystone Problem Tracking System http://www.stonekeep.com/
    NeumaPT http://www.neuma.com/
    SWBTracker http://www.softwarewithbrains.com/swbtrack.htm
    "Squish
    " http://www.squishlist.com
    T-Plan Incident Manager http://www.t-plan.co.uk
    TeamTrack http://www.teamshare.com
    TeamTrack Workgroup http://www.teamshare.com
    Team Tracker http://www.hstech.com.au/TeamTracker/
    TestTrack http://www.seapine.com
    "TrackWeb Defects
    " http://www.soffront.com/
    Trackgear http://www.logigear.com/
    TrackRecord http://www.numega.com/devcenter/tr.shtml
    "Trackwise
    " http://www.sparta-systems.com/

  • 如何转换VSS及TD服务器

    2008-02-29 15:51:12

    由于公司近日安排,部分服务器换了新机器,为了既不影响更换机器,又保存好VSS及TD中的数据,分别按以下步骤移动配置文件
     
    一、VSS
    安装还是要重新安装的,装好后将VSS的存储目录整个COPY到新机器的相应位置,没什么好说的了,值得注意的一点是存储目录的文件夹默认是共享的,但仅仅这样还不够,因为你在之前机器上配置好的用户信息无法正常取出,需要将权限设置为允许写入,才可以使用以前的用户访问库
     
    二、TD
    安装也一样,不再赘述~
    在2003中安装td遇到了很多问题~
     
    1、无法在2003SP1上安装
    解决:更新操作系统
     
    2、未自动安装IIS
    解决:下载安装6.0并手工启动
     
    3、安装过程中,提示用户名密码错误,无法进行下面安装,原因数据执行保护DEP不允许该程序执行
    解决方法:右击“我的电脑”选择“属性”/性能【设置】/数据执行保护,选择选项:为除下列选定程序之外的所有程序和服务启动DEP(U),点击【添加】按钮,找到TD安装程序中的bin目录下:checku.exe,添加上即可;
    4、安装完毕后提示RPC服务未启动。
    解决:控制面板-管理工具-服务-“Remote Procedure Call(RPC)”,启动一下(自动),服务状态“启动”;顺便,我把它下面的Remote Procedure Call(RPC)Locater也启动了,并改为了自动启动,以防万一,呵呵真懒啊~
     
    5、安装完毕,启动后只出现主页default.htm点击进入start_a和siteadmin都显示为空白页面,或者表现为提示access数据库拒绝访问之类的
    解决方法.修改win2003的IIS的TDBIN的属性, 开始-管理工具-Internet信息服务(IIS)管理器中,本地计算机-网站-默认网站-TDBIN,右键菜单 属性-HTTP头à【MIME类型】,点【新建】按钮,填扩展名为ini,MIME类型为text/*,继续新建扩展名分别为:lld、dll、ocx、xco、exe、adt、adm、xxx,MIME类型都填为text/*。
     
    6、TD服务未启动。此种情况比较复杂,需要尝试不同的解决方案,先到TD所在的那台机器上,点右键的testdirector checker,看看出错提示,对症下药。

    以下几种可以结合起来尝试:

    Ø        启动一下TD。到TD所在的那台电脑上,在系统栏右边有个小图标,鼠标移上去,点右键“Start TestDirector”;

    Ø        清空IE的cookies、History、缓存;删掉TD2000_80目录,重新下载一次插件;

    Ø        把 http://IP/tdbin/start_a.htm 改为 http://计算机名/tdbin/start_a.htm

    Ø        TD服务器装了多个版本的TD,兼容性问题;请卸载其中一个版本,重装TD;

    7、MSIE7.0无法访问testdirector8.0,提示:“Microsoft Internet Explorer : 4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1; .NET CLR.3.0.04131.06) is not supported”。

    原因:testdirector8.0不支持MSIE7.0的问题,

    解决: 在安装目录一般为C:\Inetpub\TDBIN下找到Start_a.htm文件,用记事本打开,即看到了文件源代码,找到fMSIE3456参数,修改在|| (ua.lastIndexOf('MSIE 6.0') != -1)后黏贴|| (ua.lastIndexOf('MSIE 7.0') != -1),保持即可。打开IE7.0再次访问,下载插件,安装插件,没有问题了。

    8、至于之前已有的数据库文件,直接copy过来即可,不过没有找到方法可以把用户名也拷过来,最后还是手工添加的

    9、如果客户端使用时不显示任何控件,应该删除加载的控件一个叫load什么的文件以及C盘下的TD相应目录。

    另外,强烈建议不要在两个服务器上安装不同版本的TD,很麻烦,而且有些数据不认,无法把原来的数据全部正常导入

    感谢http://www.ittang.com/2007/1022/560.html文章的作者~本文借鉴了该作者的经验~帮我解决了很多问题

     
  • 转载——31个用来测试网站各项性能的免费工具

    2008-02-29 15:50:17

     
     你是否肯定你的网站完全兼容各大浏览器?是否知道多少秒可以打开你的网站? 是否可以自信地说你的网站根本就没有打不开的时候? 是否……

        虽然它看似不重要,但这些在一定程度上也对你的网站的访问量产生了影响 ( 其它一部分影响浏览量的原因及解决办法 )。这里列出了一份 31 个我最喜爱的免费在线测试工具,你可以通过这些工具来测试你的网站,并根据结果对你的网站进行修改。

        网站代码验证 没人可以细致到保证自己的网站代码都是正确的,你可以通过以下测试来验证网站代码是否正确。

        1 .WDG HTML Validator一个很好的工具,能找出网站语法错误的地方,并标注出来,也可选择对网站上单独的每一页进行单页分析。( 强烈推荐 )

        2 .W3C Markup Validation Service对 HTML 和 XHTML 都能进行代码测试,自称是互联网络上第一个(也是使用者最多的)的 HTML 验证工具。

        3 .W3C CSS Validation Service用于验证 css 源代码,能够标注出不好的 css 代码设计。例如:“Same colors for color and background-color in two contexts”。

        4 .RUWF XML Syntax Checker用于查找 XML 文件的错误。

        5 .W3C Feed Validation Service用于查找 Atom 和 RSS feed 中的错误语法。( 这个我经常用到 )

        6 .W3C Link Checker用于搜寻查明你网站内的所有链接里是否有断链。( 强烈推荐 )

        7 .Juicy Studio Link Analyser测试网站内的链接的 URL 是否存在死链,与 W3C Link Checker 很类似。

       网站的使用性

        我们常常看到网站设计者把重点放在怎网站的吸引力上,而完全不考虑会不会影响来访者的使用,一个浏览难度很大的网页是注定要失败,要让你的来访者方便的得到他要的信息(从而成为重复访客),你的网站应当遵循 WCAG section 508 易用性规则。

        8 .Watchfire WebXACT所有严谨的设计师和开发者都必须使用的工具,它会生成一个非常详尽的报告书,包括:网站质量,易用性和隐私等。( 强烈推荐 )

        9 .ATRC Web Accessibility Checker测试网站的 WCAG 2.0 Level2 兼容性,它会生成一份报告,提出一系列建议,如:如何提升页头,链接,数据,图表和文字的访问速度。

        10 .WAVE 3.0 Web Accessibility Tool高度可定制的工具,它采用了图形化模型展示网站兼容性问题( WCAG 1.0 and section 508 )。( 强烈推荐 )

        11 .TAW Web Accessibility Test测试网页是否存在冲突( WCAG 1.0 兼容性 ),通过图形模式生成一份依据 wcag 优先模式为基础的网站修改建议。

        12 .HiSoftware CynthiaSays portal采用了非常严格的规则来测试网页( 根据 section 508 和 WCAG 1.0 规则 ),生成的报告也极为详细( 详细到很难看懂 )。

        13 .HERA Accessibility testing with Style使用一种极为复杂但容易理解方式指出网页的 wcag1.0 兼容性问题。

        14 .Juicy Studio CSS Analyser进行了色彩对比测试,以确保你的网站的色调会符合 WCAG 1.0 的要求。

        15 .Juiciy Studio Readability Test分析你网站上的文字是否有语法错误或拼写错误等问题,容易让人理解不( 根据 the Flesch Reading Ease 和 Flesch-Kincaid grade level algorithms 规则 )。( 适合英文网站使用 )

       网站的速度

        打开你的网站的速度快慢,是来访者会不会再次访问网站的关键因素,在一般情况下,一个网络不是很快的来访者是不愿意访问一个充满着图片、flash 动画、多媒体文件的网站。为了使你的网站覆盖人群的范围最大化,你必须优化你的网站,使它的打开速度尽可能的快。

        16 .Web Page Analyzer from Website Optimization一个很好的工具,它在分析完一个网页后,会为减少加载时间提出优化建议,着重优化物体的数目,图片和网站的总体大小。( 强烈推荐 )

        17 .WebSitePulse Test Tools有一系列的工具来确定网站的加载速度和主机信息。

        18 .Internet Supervision Url Check从世界各地不同的服务器来测试你的网站的加载时间,用于确定是不是各地的来访者都能顺利快速的打开你得网站。

       浏览器模拟工具

        这是一个普遍的问题,因为现在有着很多的操作系统和浏览器,你得网站必须得兼容它们,但这绝不是一件容易的事。通过下列工具,你可以了解你得网站在各种浏览器上的显示效果。

        19 .Browsershots能给出你的网站在不同浏览器下显示效果的截图,包括:Firefox 和 Internet Explorer ( Windows )、Firefox 和 Safari ( Mac OS X )、Iceweasal 和 Konqueror ( Linux ),但是结果要在 1 - 3 小时后才能出来。

        20 .IE NetRenderer实时生成你的网站在 Internet Explorer 5.5 、6.0 和 7.0 下的截图。

        21 .MobiReady Report分析使用手机访问网页的兼容性问题,会生成一份详细的报告,并提供了在两种不同类型的手机浏览器上你得网站可能显示的样子。
    搜索引擎优化 (SEO)
    一个网站,如果对搜索引擎有着比较好的友好度,一定会比较有竞争力。

        22 .UrlTrends会显示网站的访客是如何通过搜索引擎来到你的网站,还有各个流量是多少。这些数据是包括 Google, Yahoo,MSN, Alexa, AlltheWeb, Altavista其他一些网站。( 强烈推荐 )

        23 .iWEBTOOL Backlink Checker一个很好的工具,它能找出有什么站点链接到你的站点,那些站点是什么类型的站点。

        24 .iWEBTOOL Multi-Rank Checker显示你网站的 Alexa 和 Google PageRank 数值。

        25 .Microsoft adCenter Labs: Advertising and Keyword Research Tools一个极好的工具,用于分析和预测你网站的来访者和市场。( 强烈推荐 )

        26 .Domain Tools Whois lookup一个 WHOIS 网络工具。

        27 .SEO-Browser可以让你看到在搜索引擎眼里一样的网站( 去掉所有的”美丽”配件 )。

        28 .SEO Workers SEO Analysis Tool非常有用的工具,分析了网站上的各种分类特征,包括 meta 标签、关键字密度及加载时间。( 强烈推荐 )

        29 .Seekport Seekbot可以分析网站的数据和内容,以得出搜索引擎会如何有效的解释分析的网站。

        30 .SEO Chat SEO Tools用以分析网站 Google adsense 盈利潜力,关键字密度,Meta tag 等等……

        31 .Marketleap Search Engine Marketing Tools用来分析网页,让你知道你的网站检索、设定的关键字好不好

  • Subversion安装

    2008-02-29 15:49:02

             其实安装SubVersion有好一阵了,也是在网上找到别人的文章学习的,今天学习VoiceXML累得心血来潮,自己把找到的文档整理了下,贴一个

    (我把自己用到的部分整理出来了,其它的内容还见原文)
     
    一、安装Apache
    1. 从Apache网站http://httpd.apache.org/download.cgi下载Apache,请确定版本高于在2.0.54,我用的是2.0.59.之前用了2.2.4无法正常工作。

    2. 根据安装程序提示安装。注意,输入正确的server的URL很重要,如果你的服务器没有dns名称,可以直接输入IP地址。我建议安装Apache为所有用户,在80端口,作为一个服务。注意:如果你已经使用了IIS的80端口或其他监听80段口的程序,安装会失败,如果发生这种情况,直接到程序的安装目录\Apache Group\Apache2\conf,打开httpd.conf。编辑文件的Listen 80为其他可用的端口,例如Listen 81,然后重新启动-这样就不会那个问题了。

    3. 现在可以测试Apache服务器了,将浏览器指向http://localhost/-将会看到一个预先配置的网站。

    注意:

    如果你决定将Apache安装为服务,缺省情况以本地系统帐户运行会发出警告,更安全的方法是为Apache创建一个单独的运行帐户。

    请确认Apache运行的帐户是版本库目录的访问控制列表(右键目录|属性|安全)中一个明确的条目,对目录有完全的控制能力,否则,用户不能提交他们的修改。

    即使Apache运行于本地系统,你仍然需要这个条目(这种情况下将是SYSTEM帐户)。

    如果没有设置Apache的访问权限,你的用户会得到“拒绝访问(Access denied)”的错误信息,在Apache的错误日志中为错误500。

    二、安装Subversion

     从http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91下载最新版本的Subversion 。运行Subversion安装程序,并根据指导安装,如果Subversion认识到你安装了Apache,你就几乎完成了工作,如果它没有找到Apache服务器,你还有额外的步骤。

    1. 使用Windwos资源管理器,来到Subversion的安装目录(通常是c:\program files\Subversion),找到文件/httpd/mod_dav_svn.somod_authz_svn.so,拷贝这些文件到Apache的模块目录(通常是c:\program files\apache group\apache2\modules )。

    2. 从Subversion安装目录将/bin/libdb43.dll拷贝到Apache的模块目录。

    3. 使用记事本之类的文本编辑器修改Apache的配置文件(通常是 C:\Program Files\Apache Group\Apache2\conf\httpd.conf),做出如下修改:

      去掉如下几行的注释(删除 '#'标记):

      #LoadModule dav_fs_module modules/mod_dav_fs.so
      #LoadModule dav_module modules/mod_dav.so

      将下面几行添加到LoadModule部分的最后。

      LoadModule dav_svn_module modules/mod_dav_svn.so  LoadModule authz_svn_module modules/mod_authz_svn.so  
     三、配置

    现在已经设置了Apache和Subversion,但是Apache不知道如何处理Subversion客户端,我用的是TortoiseSVN。为了让Apache知道哪个目录是用来作为Subversion版本库,需要使用编辑器(例如记事本)编辑Apache的配置文件(通常是c:\program files\apache group\apache2\conf\httpd.conf):

    1. 在配置文件最后添加如下几行:

      <Location /svn>  DAV svn  SVNListParentPath on  SVNParentPath D:\SVN  AuthType Basic  AuthName "Subversion repositories"  AuthUserFile passwd  #AuthzSVNAccessFile svnaccessfile  Require valid-user  </Location>  

      这个配置告诉Apache你的所有的Subversion版本库在物理上位于D:\SVN,版本库对外的URL是: http://MyServer/svn/ ,访问需要文件passwd中的用户/密码限制。

    2. 创建配置库

    3. 浏览

           为了创建passwd文件,再次打开命令行提示符(DOS),来到apache2目录(通常是c:\program files\apache group\apache2)通过输入下面的命令创建文件

    bin\htpasswd -c passwd <username>//建立密码文件

    This will create a file with the name passwd which is used for authentication. Additional users can be added with

    bin\htpasswd passwd <username>//修改密码文件,增加新用户。如c:\program files\apache group\apache2>bin\htpasswd mm,回车后按提示写密码。

    注意:添加新用户时一定要在"c:\program files\apache group\apache2>"目录下操作

    写好的文件存放在.../apache2/目录中

    进入浏览库:在c:/svn/hichina/conf/passwd中,可以修改登陆浏览库的用户名和密码。

    1. 再次重启Apache服务。

    2. 将浏览器指向http://MyServer/svn/MyNewRepositoryMyNewRepository是你此前创建的版本库名),如果一切正常,你会被提示输入用户名和密码,然后你会看到版本库的内容。

    刚才输入的解释是:

    表 3.1. 设置Apache的httpd.conf

    设置 解释
    <Location /svn> 意思是Subversion版本库的URL是http://MyServer/svn/
    DAV svn 告诉Apache是哪个模块响应那个URL的请求-此刻是Subversion模块。
    SVNListParentPath on 对于Subversion1.3或者更高版本,这个指示表示显示所有SVNParentPath下的版本库。
    SVNParentPath D:\SVN 告诉Subversion需要查看的版本库位于D:\SVN之下
    AuthType Basic 激活基本认证,就是用户名/密码
    AuthName "Subversion repositories" 用来说明何时弹出要求用户输入认证信息的认证对话框
    AuthUserFile passwd 指定使用的认证密码文件
    AuthzSVNAccessFile 位置Subversion版本库的访问控制文件的路径
    Require valid-user 指定只有输入了正确的用户/密码的用户可以访问URL

    但是那只是一个例子,对于Apache有很多的选择。

    五、创建版本库

    使用命令行工具创建版本库

    1. 创建一个名为SVN(例如D:\SVN\)的空文件夹,作为你的所有版本库的根。

    2. D:\SVN\里创建另一个目录MyNewRepository

    3. 打开命令行窗口(或DOS窗口),进入D:\SVN\目录,输入

      svnadmin create --fs-type bdb MyNewRepository  

      svnadmin create --fs-type fsfs MyNewRepository  

    现在你在D:\SVN\MyNewRepository创建了一个新的版本库。

    使用TortoiseSVN创建版本库

    打开资源管理器

    1. 创建一个新的文件夹,命名为SVNRepository

    2. 右键点击新创建的目录,选择TortoiseSVN在此创建版本库...

      然后就会在新文件夹创建一个版本库,不要手工编辑这些文件!!!如果你得到什么警告,一定要先确定目录非空并且没有写保护。

    本地访问版本库

    为了访问本地版本库,你需要这个文件夹的路径,只要记住Subversion期望所有的版本库路径使用的形式为file:///C:/SVNRepository/,请注意全部使用的是斜杠。

    为了访问网络共享中的版本库,你可以使用驱动器影射或使用UNC路径,对于UNC路径,形式为file://ServerName/path/to/repos/,请注意这里前面只有两个斜杠。

    在SVN 1.2之前,UNC路径曾经是一种非常晦涩的格式file:///\ServerName/path/to/repos,这种格式依然支持,但不推荐。

  • SIPp场景文件

    2007-12-07 14:38:04

    刚刚98群里的朋友说在看我的MSN,最近都没有新文文发布,有点汗颜地说~
    就来贴个最近研究的东西,各位有问题可以联系我。
    PS:贴的时候觉得没有个注释什么的有点对不住各位了~下次再补吧,今天工作排成排了呵呵
    一、注册(Register)
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE scenario SYSTEM "sipp.dtd">
    <!-- This program is free software; you can redistribute it and/or      -->
    <!-- modify it under the terms of the GNU General Public License as     -->
    <!-- published by the Free Software Foundation; either version 2 of the -->
    <!-- License, or (at your option) any later version.                    -->
    <!--                                                                    -->
    <!-- This program is distributed in the hope that it will be useful,    -->
    <!-- but WITHOUT ANY WARRANTY; without even the implied warranty of     -->
    <!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the      -->
    <!-- GNU General Public License for more details.                       -->
    <!--                                                                    -->
    <!-- You should have received a copy of the GNU General Public License  -->
    <!-- along with this program; if not, write to the                      -->
    <!-- Free Software Foundation, Inc.,                                    -->
    <!-- 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA             -->
    <!--                                                                    -->
    <!--                 Sipp default 'branchc' scenario.                   -->
    <!--                                                                    -->
    <scenario name="branch_client">
      <send retrans="500">
        <![CDATA[
          REGISTER sip:[remote_ip] SIP/2.0
          Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
          From: [field0] <sip:[field0]@[local_ip]:[local_port]>;tag=[call_number]
          To: [field0] <sip:[field0]@[remote_ip]:[remote_port]>
          Call-ID: [call_id]
          CSeq: 1 REGISTER
          Contact: sip:[field0]@[local_ip]:[local_port]
          Content-Length: 0
          Expires: 3600
        ]]>
       </send>
     
       <recv response="100">
      </recv>
     
      <recv response="401" auth="true" next="1">
      </recv>
       
      <!--  send invite with authentication messages -->
      <label id="1"/>
      <send retrans="500">
      <![CDATA[
          REGISTER sip:[field0]@[remote_ip]:[remote_port] SIP/2.0
          Via: SIP/2.0/[transport] [local_ip]:[local_port]
          From: [field0] <sip:[field0]@[local_ip]:[local_port]>;tag=[call_number]
          To: [field0] <sip:[field0]@[remote_ip]:[remote_port]>
          Call-ID: [call_id]
          CSeq: 2 REGISTER
          Contact: sip:[field0]@[local_ip]:[local_port]
          [field2]
          Content-Length: [len]
          Expires: 3600
        ]]>
      </send>
     
       <recv response="100">
      </recv>
      <recv response="200"  >
      </recv>
       <pause milliseconds="1000"/>
      
      <!-- definition of the response time repartition table (unit is ms)   -->
      <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>
      <!-- definition of the call length repartition table (unit is ms)     -->
      <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>
    </scenario>
     
    二、呼叫事件(发起invite)
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE scenario SYSTEM "sipp.dtd">
    <!-- This program is free software; you can redistribute it and/or      -->
    <!-- modify it under the terms of the GNU General Public License as     -->
    <!-- published by the Free Software Foundation; either version 2 of the -->
    <!-- License, or (at your option) any later version.                    -->
    <!--                                                                    -->
    <!-- This program is distributed in the hope that it will be useful,    -->
    <!-- but WITHOUT ANY WARRANTY; without even the implied warranty of     -->
    <!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the      -->
    <!-- GNU General Public License for more details.                       -->
    <!--                                                                    -->
    <!-- You should have received a copy of the GNU General Public License  -->
    <!-- along with this program; if not, write to the                      -->
    <!-- Free Software Foundation, Inc.,                                    -->
    <!-- 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA             -->
    <!--                                                                    -->
    <!--                 Sipp default 'uac' scenario.                       -->
    <!--                                                                    -->
    <scenario name="Basic Sipstone UAC">
      <!-- In client mode (sipp placing calls), the Call-ID MUST be         -->
      <!-- generated by sipp. To do so, use [call_id] keyword.                -->
      <send retrans="500">
        <![CDATA[
          INVITE sip:[field1]@[remote_ip]:[remote_port] SIP/2.0
          Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
          From: [field0] <sip:[field0]@[local_ip]:[local_port]>;tag=[call_number]
          To: [field1] <sip:[field1]@[remote_ip]:[remote_port]>
          Call-ID: [call_id]
          CSeq: 1 INVITE
          Contact: sip:[field0]@[local_ip]:[local_port]
          Max-Forwards: 70
          Subject: Performance Test
          Content-Type: application/sdp
          Content-Length: [len]
          v=0
          o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
          s=-
          c=IN IP[media_ip_type] [media_ip]
          t=0 0
          m=audio [media_port] RTP/AVP 0
          a=rtpmap:0 PCMU/8000
        ]]>
      </send>
      <recv response="407" auth="true">
      </recv>
      <!-- Packet lost can be simulated in any send/recv message by         -->
      <!-- by adding the 'lost = "10"'. Value can be [1-100] percent.       -->
      <send>
        <![CDATA[
          ACK sip:[field0]@[remote_ip]:[remote_port] SIP/2.0
          Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
          From: [field0] <sip:[field0]@[local_ip]:[local_port]>;tag=[call_number]
          To: [field1] <sip:[field1]@[remote_ip]:[remote_port]>[peer_tag_param]
          Call-ID: [call_id]
          CSeq: 1 ACK
          Contact: sip:[field0]@[local_ip]:[local_port]
          Max-Forwards: 70
          Subject: Performance Test
          Content-Length: 0
        ]]>
      </send>
      <!-- This delay can be customized by the -d command-line option       -->
      <!-- or by adding a 'milliseconds = "value"' option here.             -->
     
      <!-- Send 407 Authentication messages                                 -->
      <send retrans="500">
      <![CDATA[
          INVITE sip:[field1]@[remote_ip]:[remote_port] SIP/2.0
          Via: SIP/2.0/[transport] [local_ip]:[local_port]
          From: [field0] <sip:[field0]@[local_ip]:[local_port]>;tag=[call_number]
          To: [field1] <sip:[field1]@[remote_ip]:[remote_port]>
          Call-ID: [call_id]
          CSeq: 2 INVITE
          Contact: sip:[field0]@[local_ip]:[local_port]
          [field2]
          Max-Forwards: 70
          Subject: Performance Test
          Content-Type: application/sdp
          Content-Length: [len]
          v=0
          o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
          s=-
          t=0 0
          c=IN IP[media_ip_type] [media_ip]
          m=audio [media_port] RTP/AVP 0
          a=rtpmap:0 PCMU/8000
        ]]>
      </send>
     
      <recv response="100" >
      </recv>
      <recv response="180" ōptional="true">
     </recv>
     <recv response="200" >
     </recv>
      <pause milliseconds="5000"/>
      <!-- The 'crlf' option inserts a blank line in the statistics report. -->
      <send retrans="500">
        <![CDATA[
          BYE sip:[field1]@[remote_ip]:[remote_port] SIP/2.0
          Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
          From: [field0] <sip:[field0]@[local_ip]:[local_port]>;tag=[call_number]
          To: [field1] <sip:[field1]@[remote_ip]:[remote_port]>[peer_tag_param]
          Call-ID: [call_id]
          CSeq: 2 BYE
          Contact: sip:[field0]@[local_ip]:[local_port]
          Max-Forwards: 70
          Subject: Performance Test
          Content-Length: 0
        ]]>
      </send>
     
      <recv response="200" crlf="true">
      </recv>
      <!-- definition of the response time repartition table (unit is ms)   -->
      <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>
      <!-- definition of the call length repartition table (unit is ms)     -->
      <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>
    </scenario>

    三、遇到的问题
    目前还在解决如何能用SIPp实现接听电话,以便双方能真正建立通话。
    已经可以确定的是该软件不只像load runner那样模拟实现,而是现实意义上的按场景文件实现,因为我曾经用它发送到座席号码后,已经登录的座席真的被呼叫了,接听后双方可以通话,遇到的问题也正在于此:如何能实现接收~做过一些实践都没有成功,发送200OK总是失败的,显示累积值为0~

    四、对应.CSV文件
    3599;71001;[authentication username=3599 password=000000]
    3598;71002;[authentication username=3598 password=000000]
    3597;71003;[authentication username=3597 password=000000]
    3596;71004;[authentication username=3596 password=000000]
    3595;71005;[authentication username=3595 password=000000]
    3594;71006;[authentication username=3594 password=000000]
    3593;71000;[authentication username=3593 password=000000]
    3592;72001;[authentication username=3592 password=000000]
    3591;72002;[authentication username=3591 password=000000]
    3590;72003;[authentication username=3590 password=000000]
    3589;72004;[authentication username=3589 password=000000]
    3588;72005;[authentication username=3588 password=000000]
    3587;73000;[authentication username=3587 password=000000]
    3586;73001;[authentication username=3586 password=000000]
    3585;73002;[authentication username=3585 password=abc124]
    3584;73003;[authentication username=3584 password=000000]
    3583;73004;[authentication username=3583 password=000000]
    五、注意
         1、被叫必须要登录
         2、每个公司的SIP协议栈都不尽相同,需要按需配置
291/212>
Open Toolbar