根据出现的困难,解决后总结思路
参数化
上次有了整体的测试框架之后,大家可能发现参数化并没有运用得很到位,如你每次想调用“SSH Command”控件的时候,你都要用你记性好的脑袋去填写难记住的ip地址、用户名和密码
SSH Command 控件这个时候,你就可以尝试想想,面向对象的思想,把这些东西抽离出来复用!
【“用户定义的变量”这个控件就可以帮你实现】
用户定义的变量 控件那么之后就可以在后面复用【下图为例】
SSH Command 控件按照这个思路你还可以将复杂的、需要复用多次的路径或者指令,安排得明明白白。
if控件
在这里顺便讲解一下,为什么会用到这么多if条件的控件?
if条件 控件在此还需要注意的是,我创建这个if条件控件的时候,是默认勾选了一个选项“interpert Condition as Variable Expression?”,这个是想把你的条件化作变量表达式,显然你不需要(因为表达式就必须让你得出true or false了)
否则,线程运行会出错!
如图上,如此的设置,是因为我可能在执行完十条用例之后就想实现自动停止,那么就得有一个判断的依据,“Is_Execute”就是这个依据。下图演示。
csv用例设计多个执行脚本放在用例
还有当你遇到需要在csv用例体现执行多个脚本程序,应该怎么办?比如我需要在一条用例里面既执行check.sh去检查文件名是否正确,也要执行start.sh经过文件名检查后的日志文件的内容是否进入数据库,这个时候我应该怎么办呢?
有些同学就会说,你可以在csv用例里面多整一个字段存啊!当然,最开始你可以这样设计,但是后面又需求改动的时候,怎么办呢。。。
那么我这里采用的方式是把check.sh和start.sh写在一起,使用分隔符,在调用的时候,使用代码进行分开【大家有其他方法可以分享】
csv用例中:
csv用例——分隔符放多个脚本图中,我是写成了“check.sh&start.sh”,那么在脚本如何处理呢?
此处我写了java代码进行分割,顺便用脚本语言打印一下观察是否分割成功。
分割脚本的代码分割之后,当然要学以致用噻!
单独执行chek.sh脚本 执行check.sh和start.sh脚本这样,按照这个思路,你甚至可以分割多个sql语句进行查询、分割多个预期结果进行比对等等......
【知识点,学的是这个思路】【大家有其他更好的方法均可分享】
这里可能还有一个问题,关于SSH Command控件
测试中,你怎么确定你的机器能够正常连上,或者机器刚刚启动,但SSH还未加载完?
那么在这里可以参考一位大神的做法:(欢迎大家分享更多好方法)
说明:通过一个循环搞定。
当你遇到用例里面出现随时变化的参数时,应该如何应对?
EX:我需要去判断报警日志里面是否出现相应的内容,但是内容里面包含当天的时间,这种情况难道你还在每一条用例上去修改吗?
如图
包含变更时间的日志测试中我需要匹配这段样例,但是时间却会变化,此时在用例里面可以先用符号代替。
csv用例中 用符号代替变化参数可以在脚本中获取系统时间进行替换
运行的结果:
测试运行结果看完以上的问题和参考方法之后,倒回来给你们解释一下我设计的csv用例上面的字段含义,你们就会大概明白我为什么会这样设计。
【大家有更好的建议,别忘了提供窝!】
csv用例字段的解释需要操作多个sql语句的时候,应该怎么办?
jdbc连接控件其实很简单,只需要在控件里面URL输入 ?allowMultiQueries=true 即可,如图所示
之后就可以在输入sql的地方操作多个sql语句:(注意输入;,并且注意是否自动提交)
下次我会接着讲解数据比对的问题窝!
网友评论