keynes_2005 发表于 2007-1-4 18:28:51

一路走来学习JMeter--- 之III关于脚本录制

一路走来学习JMeter--- 之III关于脚本录制

关于脚本录制:
1.      怎样取得弹出式窗口的脚本?
有些窗口直接与client端交换数,并不经过APACHE web server,这样的弹出式窗口我们无法通过跟踪apache上的access log取得path和parameters, 然后手工加入控制环,只有对经过APACHE web server的窗口才可以。
2.      怎样查看apache access log?
a.      用SecureCRT登陆web server;
b.      输入ps –ef |grep httpd 命令,可以查到当前正在运行的进程并得到apache程序目录;
c.      进入程序目录 cd /www;
d.      进入log目录 cd /logs;
e.      查看日志 vi /www/logs/access_log;(或者查看动态日志 tail –f /www/logs/access_log)。

3.      正则表达式简单介绍?
假设web page上有这样一句name="file" value="readme.txt",如果你想获取’readme.txt’,就要将此句写为name="file" value="(.*)". 如果需要获取"file" 和"readme.txt",那么表达式应写为name="(.*)" value="(.*)" 另外还要添加Template为$1$$2$来表示顺序取第一个和第二个括号中的数值。
4.      在页面上发生的所有情况全部要手工操作录制么?
建议录制全部,因为做为性能测试,必须为jmeter提供完整脚本。当然,为了方便,我们可以尽量录制全面,在run时disable掉不需要的http request,这样可以减少脚本量。
5.      同一个测试计划可以从不同的csv文件里面读取数据么?
可以。需要指明路径和文件名。

6.      同一个测试计划的csv文件可以分别放到不同目录下么?
可以,他们可以分属同一目录的不同子目录,或者通过用绝对路径的方式进行描述。
7.      怎样指定csv文件的读取目录?
将存放csv文件的目录写入jmeter.properties文件的User.dir下。

8.      在运行结果中的红色提示行都是脚本错误造成的么?
不是,造成这种想象的原因有2种:脚本错误和jmeter自身的错误。

9.      为了提高脚本的可移植性,我们需要定义变量来替换静态值,怎样能快速完成替换工作呢?
用编辑器打开jms脚本,然后进行查找替换可以提高效率。但是在进行这种操作前有些问题需要注意:a. 一定要在加变量前进行,否则变量会被替换掉。b. 替换条件要保证替换值的唯一性。 c. 谨慎检查,多遍多方法检查。
10.      因为软件的原因,使用badboy录制的脚本回有些‘=’丢失,该怎样补救呢?
在每个http request中click the box of include equals,使其勾选中即可。因为Badboy的原因,有些选项虽然勾中,但是运行时不一定会真的包含在运行脚本里,所以对于录制时就已经勾选的地方需要手工每页再次勾选一下,这时有2个地方要注意,一是要在手工勾选后时期保持原状,二是每页只需勾选一个即可达到目的,不用每个参数都操作。在脚本里,还有没有被勾选的参数,这是因为在录制时该参数无值,是可以忽略的。

11.      在录制完脚本后有哪些注意事项?
录制完成后要检查录制脚本是否可以正常工作,即使录制时的操作是成功的,也不能保证脚本完全正确,我们应该简单run一下看看原始脚本是否能够达到预期目标。比如schedule meeting的脚本,我们在录制完后run,检查是可以真正schedule新的meeting,没有的话说明脚本是无效的。
12.      需要手工定义为正则表达式的变量有什么特征?
a.      是需要动态捕获的,在不同环境下,其值是不可预知的。
b.      为了移植需要,在各环境中有不同的值的。
c.      页面内部使用的不需要。
d.      用户手工填写的不需要。
13.      录制脚本时参数的选择?
尽量选择一些公用的较普遍的参数,这样的脚本受环境和用户权限限制会小些。比如在schedule时选择meeting center pro meeting这样的普通参数。
14.      录制脚本时的时间选择注意事项?
在录制时,如果遇到跟时间有关的或者类似依赖当前状态的选项,请尽量将时间向后选择,否则在状态无法满足后,脚本将无法run。我们也可以将这种有依赖当前状态的值设置为变量,这样通过给变量赋值。也可解决这种问题。
15.      那些值应键入公共用户变量?
如果有整个plan都需要用到的变量就可以独自拿出放入公共变量中,比如user name/password等。
16.      为何有时不定义正则表达式也能正常运行?
因为有些不可见参数虽然产生,但是在其后的脚本中也许并未调用到,这样的情况下定义与否并不会有影响。
17.      在写脚本时有什么原则?
尽量以功能为单元建立step,这样既可以做整体测试,也方便进行功能测试和个功能间的关系测试。
18.      怎样开始基本的错误分析?
在遇到错误时,首先检查request,如果其中get或post的url可以直接正常在浏览器上打开,那么就说明脚本是正确的,否则就说明脚本需要修改。如果遇到一些url需要cookie,它可能直接返回login页面,这时不适用此方法。


19.      运行时同样的参数有时无法正确读到真正的数据,因为什么呢?
JMeter自身缺陷导致。在第一句为ssl请求时取参数可能发生错误。
20.      怎样判断运行是否正常?
分3部分:首先检查脚本运行是否成功,然后检查Request中的数据是否正常,最后是分析Response data是否正确。
21.      在准备client脚本时,为何不能使用http cookie manager?
因为client不可维持cookies。

mew234 发表于 2012-3-30 10:04:35

谢谢分享
页: [1]
查看完整版本: 一路走来学习JMeter--- 之III关于脚本录制