|
一路走来学习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。 |
|