2008年12月23日星期二

iMacros使用进阶

iMacros使用
作者:zymaxs

iMacros与js
当你已经初步学会了如何使用iMacros后,为了实现更加复杂的操作,可以尝试使用用js来调用iMacros。
你可以在脚本中重命名一个.js后缀的脚本,之后运行该脚本将以js方式调用。你也可以从外部载入一个js脚本,使用记录-载入或直接复制脚本到iMacros的Datasources目录

第一次使用js调用iMacros脚本
首先录制一个简单的脚本google.iim
VERSION BUILD=6111213 RECORDER=FX
'作者zymaxs
TAB T=1
URL GOTO=http://www.google.cn/
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:f ATTR=NAME:q CONTENT=iMacros
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:f ATTR=NAME:btnG&&VALUE:Google搜索

录制完成后,再导入一个空文件,文件名为google.js。
编辑google.js:
iimPlay("google");
确定保存,然后运行这个文件

运行刚刚的js我们发现,使用iimPlay可以方便的调用一个iim脚本。
iimPlay的完整调用方法为
int ret_code = iimPlay ( String macro [, int timeout] )(备注:作者没有发现timeout的具体作用)
返回值ret_code为1时说明iim被正确调用。小于0则说明执行脚本时出现了错误

如何调用外部参数
在很多情况下,我们希望最终运行时输入的数据并不是录制的数据,而是需要自定义可修改的。
要达到这个使用目的可以使用iimSet()设置自定义变量-var_varname,然后在脚本中调用这个参数。
int ret_code = iimSet ( String -var_VARNAME, String VARVALUE )‏

调用示例
修改google.js:
iimSet ("-var_search","imacros")‏
iimPlay("google");
修改google.iim中:
CONTENT=Imacros 为CONTENT={{search}}
再次运行google.js
发现了吗,搜索传入的参数可以通过这种方式任意修改。

在运行过程输入值
有些时候你不能在运行前确定脚本中的一个值,需要在运行中手动输入,这时候需要对iim脚本做修改:
PROMPT 输入验证码 !VAR1
运行时会跳出一个输入框让你输入数据
然后使用{{!VAR1}}调用数据

保存结果页面
有时候我们希望在运行脚本的过程中可以把一些重要的页面记录下来,这时候我们可以在iim脚本中使用:
SAVEAS TYPE=MHT FOLDER=* FILE=pagename
这句意味着保存当前页为mht格式,保存到iMacros的download文件夹中

页面响应时间记录
在做一些页面的测试时,我们需要记录页面的响应时间以便进行分析。
iMacros提供可以用csv格式保存页面响应时间,对应iim脚本:
STOPWATCH ID=id
‘做一些页面操作
STOPWATCH ID=id

更加复杂的使用
这篇使用仅仅是基本的说明,如果你觉得这些依然不能解决你目前遇到的问题,建议你可以去看下iMacros安装好后自带的脚本示例。
灵活使用js可以让你更加自由的使用iMacros。
声明:允许非商业性质的转载,请转载时标明出处 http://zymaxs.blogspot.com/2008/12/imacros_23.html

iMacros初步使用

iMacros for Firefox使用介绍
作者:zymaxs

iMacros介绍
如果你喜欢用 Firefox 浏览器,但是厌倦了重复性的工作,比如每天访问同一网站,填写表格,记忆密码等等,那么 iMacros for Firefox 是你梦想的解决方法!iMacros 为自动完成网页相关重复工作而设计。如果你需要重复做某件事,可以用 iMacros 把过程录制下来,下次需要重做时,只要按一个按钮,全部录制的过程即可重放!

iMacros安装
iMacrosh安装相当方便,我们以firefox版本为例:
访问中文firefox附件的网页https://addons.mozilla.org/zh-CN/firefox/search?q=imacros&cat=all,点击下载安装附件。完成后重启浏览器就可以看到iMacros已经成功安装在firefox浏览器上了

iMacros使用
安装完成iMacros后,我们可以在浏览器上看到iMacros插件。点击插件在浏览器左侧弹出界面。
iMacros功能菜单分运行,记录,编辑3块.

使用iMacros录制
把浏览器页面定位到需要录制的页面,然后点击记录-记录开始录制iMacros脚本。
录制完成后点击停止按钮停止录制。
录制完成后点击储存保存脚本。

运行录制的脚本
刚刚录制的脚本将会临时保存在#Current.iim中。
选中脚本,点击运行,刚刚录制的脚本将重复运行。
在运行脚本过程中你可以点击暂停/继续来暂时停止脚本运行。当要中途完全停止脚本时,请点击停止按钮。

编辑脚本
录制后的脚本有时需要编辑一下才能使用。在列表中选中脚本后点击编辑-编辑进行编辑脚本。
你可以修改录制过程中的参数。
iMacros提供了一些系统方法允许你进行参数,正确的修改脚本将使脚本的通用性大大提高。
声明:允许非商业性质的转载,请转载时标明出处 http://zymaxs.blogspot.com/2008/12/imacros.html

2008年12月20日星期六

软件测试计算公式总结

通用公式:
计算平均的并发用户数: C = nL/T
C是平均的并发用户数;n是login session的数量;L是login session的平均长度;T指考察的时间段长度。
并发用户数峰值: C’ ≈ C+3根号C
C’指并发用户数的峰值,C就是公式(1)中得到的平均的并发用户数。该公式的得出是假设用户的login session产生符合泊松分布而估算得到的。

实例:
假设有一个OA系统,该系统有3000个用户,平均每天大约有400个用户要访问该系统,对一个典型用户来说,一天之内用户从登录到退出该系统的平均时间为4小时,在一天的时间内,用户只在8小时内使用该系统。
则C = 400*4/8 = 200
C’≈200+3*根号200 = 242

F=VU * R / T
其中F为吞吐量,VU表示虚拟用户个数,R表示每个虚拟用户发出的请求数,T表示性能测试所用的时间
R = T / TS
TS为用户思考时间
计算思考时间的一般步骤:
A、 首先计算出系统的并发用户数
C=nL / T F=R×C
B、 统计出系统平均的吞吐量
F=VU * R / T R×C = VU * R / T
C、 统计出平均每个用户发出的请求数量
R=u*C*T/VU
D、根据公式计算出思考时间
TS=T/R


缺陷检测有效性百分比DDE=TDFT/(TDFC+TDFT)×100%
其中:TDFT=测试过程中发现的全部缺陷(即由测试组发现的),TDFC=客户发现的全部缺陷(在版本交付后一个标准点开始测量,如,半年以后)

缺陷排除有效性百分比DRE=(TDCT/TDFT)×100%
其中:TDCT=测试中改正的全部缺陷,TDFT=测试过程中发现的全部缺陷

测试用例设计效率百分比TDE=(TDFT/NTC)×100%
其中:TDFT=测试过程中发现的全部缺陷,NTC=运行的测试用例数

以下公式较适用于白盒测试
功能覆盖率= 至少被执行一次的测试功能点数/ 测试功能点总数 (功能点)
需求覆盖率= 被验证到的需求数量 /总的需求数量 (需求)
覆盖率= 至少被执行一次的测试用例数/ 应执行的测试用例总数 (测试用例)
语句覆盖率= 至少被执行一次的语句数量/ 有效的程序代码行数
判定覆盖率= 判定结果被评价的次数 / 判定结果总数
条件覆盖率= 条件操作数值至少被评价一次的数量 / 条件操作数值的总数
判定条件覆盖率= 条件操作数值或判定结果至少被评价一次的数量/(条件操作数值总数+判定结果总数)
上下文判定覆盖率= 上下文内已执行的判定分支数和/(上下文数*上下文内的判定分支总数)
基于状态的上下文入口覆盖率= 累加每个状态内执行到的方法数/(状态数*类内方法总数)
分支条件组合覆盖率= 被评测到的分支条件组合数/分支条件组合数
路径覆盖率= 至少被执行一次的路径数/程序总路径数

如果谁知道还有其他的计算公式请帮忙留言补充或给我发消息,谢谢
以上内容由zymaxs收集整理~~

ubuntu新手常用命令

新手常用命令:

查看版本 cat /etc/issue or cat /etc/lsb-release

查看内核 uname -a (显示全部信息). uname -r (显示内核信息)

删除过时旧的软件包: #apt-get autoremove

QQ替代软件:安装eva #sudo apt-get install eva

MSN替代软件:安装amsn #sudo apt-get install amsn

修复安装 #sudo apt-get -f install

查看源列表: #:cat /etc/apt/sources.list

更新你的源列表 #sudo apt-get update(注:换源后必须做这一步)

更新软件 #sudo apt-get upgrade

更新所有软件包含核 #sudo apt-get dist-upgrade

把终端加到右键菜单: #sudo apt-get install nautilus-open-terminal

安装解压软件: sudo apt-get install rar unrar

OpenSSL介绍

OpenSSL包含一个命令行工具用来完成OpenSSL库中的所有功能,更好的是,它可能已经安装到你的系统中了。 OpenSSL是一个强大的安全套接字层密码库,Apache使用它加密HTTPS,OpenSSH使用它加密SSH,但是,你不应该只将其作为一个库来使用,它还是一个多用途的、跨平台的密码工具。 这里简单说一下OpenSSL的背景,在OpenSSL之前,叫做ssleay,它是一个由Eric A.Young编写的SSL工具,它不断改进最终变成了OpenSSL,与NCSA的HTTPd变成Apache服务器的过程非常类似,今天,OpenSSL支持多种加密算法和协议。 OpenSSL有许多的特征,而且还有SSL客户端和服务端特征,OpenSSL还有:
◆美国联邦政府NIST FIPS 140-2一级评估确认
◆TLS,下一代SSL协议
◆X.509密钥和证书的生成
◆X.509证书权力
◆S/MIME加密
◆文件加密和粉碎
◆打乱UNIX密码
◆9个不同的商业密码硬件设备
◆密码性能测试
◆36个命令
◆6个消息摘要算法
◆9个密码算法
◆多个加密协议
尽管OpenSSL很复杂,但是大量的复杂性可以被避免的,本文剩下的部分将集中在易于使用的特征上,在shell代码中仅仅需要几行就可以了。 本文使用与我早期编写的GnuPG Hacks文章一致的小结标题,以便于比较OpenSSL和GnuPG。 入门 首先,确认一下OpenSSL已经安装并处于你的路径之下,许多Linux发行版,甚至一下小的发行版,都包括了OpenSSL,通常,OpenSSL处于/usr/bin/下。 在所有的例子中,shell提示符都是 第一步,输入: ;openssl version 注意这里在version选项前是没有破折号的。 你应该看到类似下面这样的输出: OpenSSL 0.9.7d 17 Mar 2004 准确的版本号,日期和其他可能不同的细节,写本文的时候,目前的版本是OpenSSL0.98a,我们正在使用的例子能工作在大部分OpenSSL版本下。 如果你只输入了openssl,没有附加任何的参数,你将得到下面这样的提示符: OpenSSL> 如果是这样,只需要输入quit或按Ctrl-C即可安全地退出,它OpenSSL内部命令行提示符,它没有命令行编辑功能,也没有明确的帮助功能,但是,如果你输入一个它不认识的命令,它会列出一个可用的命令列表。
二进制文件保护 二进制文件典型地用于使用MIME的电子邮件,如果你的电子邮件软件不支持MIME,如大多数命令行电子邮件客户端,你将被uuencode困扰,你可以使用基于64位编码的OpenSSL,复杂的MIME协议也使用的是64位编码,但是它不能直接兼容MIME。 要使用64位编码打包二进制文件成文本文件,输入: ;openssl base64 <> filename.txt 要打开64位编码的文本文件,输入: ;openssl base64 -d <> filename.bin 注意OpenSSL不会关心文件扩展名。 OpenSSL与GnuPG或MIME不一样,它还能对短字符串进行编码,如下: ;echo "The Linux Journal" openssl base64 VGhlIExpbnV4IepvdXJuYWwK 解码: ;echo "VGhlIExpbnV4IEpvdXJuYWwK" openssl base64 -d The Linux Journal 注意-d选项,它意味着解码。 更好的校验和 sum和cksum是传统的UNIX校验程序,它们工作得很好,只要你不需要跨平台兼容或安全,你也不用担忧会出现2个完全不同的文件有相同的校验和值。 尽管Linux系统经常安装了md5sum,MD5算法遭受了一个相对较新的漏洞,现在不应该使用它。如果它已经安装了,应该使用更安全的sha1sum,但是,一些版本只能同时对一个文件进行打乱,一些不能处理标准输入或者有其他的不足,如果你运行这些程序遇到了问题或者你想有一致的、比较知名的、具有良好跨平台的软件,建议考虑OpenSSL。 OpenSSL打乱输出格式与GnuPG有一点不同,但是数字是相同的,OpenSSL格式总是要鉴定使用的算法,并总是输出一个小写的无空白的十六进制的字符串,你会发现这种格式更容易使用。 这里有一些例子: ;openssl sha1 filename SHA1(filename)= e83a42b9bc8431a6645099be50b6341a35d3dceb ;openssl md5 filename MD5(filename)= 26e9855f8ad6a5906fea121283c729c4 在我早前的文章“GnuPG Hacks”中,上面的例子使用了一个包括字符串“The Linux Journal”的文件,注意这个字符串没有句号。 如果你复杂这些结果时遇到了问题,这里提供一个带ASCII注释的十六进制的表示,注意新行末尾是vi自动加上去的: OpenSSL与GnuPG不一样,它没有SHA-512加密算法,但是OpenSSL有MD2,MD4,MDC2,这些都是旧的算法了,只是为了保持向后兼容,和MD5一样,现在它们都不应该拿来使用。
转载文,原文出处不明~

scrot使用

无论是撰写技术教程,还是展示桌面或应用,恐怕 scrot 都是必不可少的工具。scrot 是屏幕抓图工具中的皎皎佼佼者,它小巧而不失为强大,精练而不缺少灵活。
scrot 主要用在命令行下,它使用 imlib2 库来抓取并保存图像。在 Ubuntu 中,可以使用 sudo apt-get install scrot 指令来安装 scrot。scrot 的使用格式为:scrot [options] [file]。
一般用法
就一般而言,使用 scrot 可以抓取整个桌面、某个指定的窗口、以及选择的矩形区域。
抓取桌面:scrot desktop.png,该命令将当前的整个桌面抓取下来,并保存为 desktop.png 文件。可以在当前的目录中找到此图像文件。
抓取窗口:scrot -bs window.png,选项 b 使 scrot 在抓取窗口时一同将外边框抓取下来,而 s 选项则让用户选择所要抓取的是何窗口。
抓取区域:scrot -s rectangle.png,在执行此命令后,使用鼠标拖曳的矩形区域将被 scrot 抓取下来。
高级使用
对于普通的抓取使用 scrot 的基础便足以应付了。但在某些特殊情况之下,使用 scrot 抓取图像需要讲究一些技巧。
延时抓取:scrot -cd 10 menu.png,此命令中的 d 选项用于延时抓取图像,其后的 10 代表延时 10 秒;前面的选项 c 显示倒计时。在抓取菜单或是命令提示时,该技巧将充分展示其魔力。
生成缩图:scrot -t 50% thumb.png,这个命令在抓取图像的同时生成该图像的缩略图。选项 t 将打开此功能,其后的 50% 为原图的缩放百分比。
更改品质:scrot -q 70 quality.jpg,此命令中的 q 选项用于更改所抓图像的品质,其数值介于 1-100 之间,默认为 75。数值越大,意味着图像品质越高;同时,图像的压缩率也就越低,占用空间越大。
操作抓图:scrot action.png -e 'mv $f ~/images/',该命令将抓取的图像移动到 ~/images/ 目录。显然,操作图像的功能由 e 选项开启,其中的 $f 代表原图的路径/文件名。
以上示例皆指定了需要保存的抓图的文件名称。实际上,如果不指定名称,那么 scrot 在抓取图像后会自动使用当前的日期时间、宽度高度的组合来生成文件名称。
版权声明: 允许非商业性转载,但转载时必须标明作者及原文链接.本文网址: http://linuxtoy.org/archives/mastering-scrot.html

ubuntu下播放器显示歌曲信息乱码解决

在ubuntu下,系统是使用的UTF-8字符集。而rhythmbox等播放器有的不可以调整MP3歌曲中所包含的ID3标签信息的字符集。所以造成了乱码显示。像BMP等播放软件可以更改ID3的字符集显示,所以很方便解决乱码的问题。  今天,我们来用一个软件包批量修改MP3曲目中的ID3标签的字符集,使它符合UBUNTU系统下的播放器的要求。消灭乱码。  首先,需要有软件包mid3iconv。如果你的系统中没有安装它,可以通过如下代码自动安装:sudo apt-get install python-mutagen  然后转到你的MP3目录,执行以全命令进行转换:mid3iconv -e GBK *.mp3  如果需要包含子目录,可以将后缀改成如下格式:打命令的时候文件名字给 "*/*.mp3" 就行了。比如mid3iconv -e GBK */*.mp3最后,重新导入一次rhythmbox就OK了。

web测试总结之功能测试

1.1 链接测试
链接是Web 应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段。链接测试可分为三个方面。首先,测试所有链接是否按指示的那样确实链接到了该链接的页面;其次,测试所链接的页面是否存在;最后,保证Web应用系统上没有孤立的页面,所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问。
链接测试可以自动进行,现在已经有许多工具可以采用。链接测试必须在集成测试阶段完成,也就是说,在整个Web应用系统的所有页面开发完成之后进行链接测试。
采取措施:采用自动检测网站链接的软件来进行。
推荐软件:
Xenu
HTML Link Validator

1.2 表单测试
当用户通过表单提交信息的时候,都希望表单能正常工作。
如果使用表单来进行在线注册,要确保提交按钮能正常工作,当注册完成后应返回注册成功的消息。如果使用表单收集配送信息,应确保程序能够正确处理这些数据,最后能让顾客能让客户收到包裹。要测试这些程序,需要验证服务器能正确保存这些数据,而且后台运行的程序能正确解释和使用这些信息。
当用户使用表单进行用户注册、登陆、信息提交等操作时,我们必须测试提交操作的完整性,以校验提交给服务器的信息的正确性。例如:用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等。如果使用了默认值,还要检验默认值的正确性。如果表单只能接受指定的某些值,则也要进行测试。例如:只能接受某些字符,测试时可以跳过这些字符,看系统是否会报错。
1.3 数据校验
如果系根据业务规则需要对用户输入进行校验,需要保证这些校验功能正常工作。例如,省份的字段可以用一个有效列表进行校验。在这种情况下,需要验证列表完整而且程序正确调用了该列表(例如在列表中添加一个测试值,确定系统能够接受这个测试值)。
在测试表单时,该项测试和表单测试可能会有一些重复。
1.2和1.3的采取措施:第一个完整的版本采用手动检查,同时形成WinRunner(QTP)脚本;回归测试以及升级版本主要靠WinRunner(QTP)自动回放测试。
手动测试推荐辅助工具
IE: iedevelop debugbar
Firefox: Firebug
浏览器录制工具推荐:iMacros ,Selenium
1.4 cookies测试
Cookies通常用来存储用户信息和用户在某应用系统的操作,当一个用户使用Cookies访问了某一个应用系统时,Web服务器将发送关于用户的信息,把该信息以Cookies的形式存储在客户端计算机上,这可用来创建动态和自定义页面或者存储登陆等信息。如果Web应用系统使用了Cookies,就必须检查Cookies是否能正常工作。测试的内容可包括Cookies是否起作用,是否按预定的时间进行保存,刷新对Cookies有什么影响等。如果在 cookies 中保存了注册信息,请确认该 cookie能够正常工作而且已对这些信息已经加密。如果使用 cookie 来统计次数,需要验证次数累计正确。
采取措施:
1 采用黑盒测试:采用上面提到的方法进行测试
2 采用查看cookies的软件进行(初步的想法)
可以选择采用的软件
IECookiesView v1.50
Cookies Manager v1.1
firefox下面可以使用firebug的firecookie
1.5 数据库测试
在Web应用技术中,数据库起着重要的作用,数据库为Web应用系统的管理、运行、查询和实现用户对数据存储的请求等提供空间。在Web应用中,最常用的数据库类型是关系型数据库,可以使用SQL对信息进行处理。
在使用了数据库的Web应用系统中,一般情况下,可能发生两种错误,分别是数据一致性错误和输出错误。数据一致性错误主要是由于用户提交的表单信息不正确而造成的,而输出错误主要是由于网络速度或程序设计问题等引起的,针对这两种情况,可分别进行测试。
采取措施:暂时没有更好的测试方法
建议如果有条件直接查看数据库吧~
考虑结合到1.2和1.3的测试中
1.6 应用程序特定的功能需求
最重要的是,测试人员需要对应用程序特定的功能需求进行验证。尝试用户可能进行的所有操作:下订单、更改订单、取消订单、核对订单状态、在货物发送之前更改送货信息、在线支付等等。这是用户之所以使用网站的原因,一定要确认网站能像广告宣传的那样神奇。
采取措施:深刻理解需求说明文档
1.7 设计语言测试
Web设计语言版本的差异可以引起客户端或服务器端严重的问题,例如使用哪种版本的HTML等。当在分布式环境中开发时,开发人员都不在一起,这个问题就显得尤为重要。除了HTML的版本问题外,不同的脚本语言,例如Java、JavaScript、 ActiveX、VBScript或Perl等也要进行验证。
暂时没有方法测试,可以多参考一点讨论组内的更新信息

2008年12月18日星期四

小乙的博客开张类

开博第一贴
纪念一下