美文网首页
Jmeter进行接口自动化测试实战-学习分享-0.0.2

Jmeter进行接口自动化测试实战-学习分享-0.0.2

作者: e5bda6e7a596 | 来源:发表于2019-01-03 09:54 被阅读0次

根据出现的困难,解决后总结思路

参数化


  上次有了整体的测试框架之后,大家可能发现参数化并没有运用得很到位,如你每次想调用“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还未加载完?

那么在这里可以参考一位大神的做法:(欢迎大家分享更多好方法)

说明:通过一个循环搞定。

传送门:https://www.cnblogs.com/landhu/p/10008147.html

当你遇到用例里面出现随时变化的参数时,应该如何应对?


    EX:我需要去判断报警日志里面是否出现相应的内容,但是内容里面包含当天的时间,这种情况难道你还在每一条用例上去修改吗?

如图

包含变更时间的日志

测试中我需要匹配这段样例,但是时间却会变化,此时在用例里面可以先用符号代替。

csv用例中 用符号代替变化参数

可以在脚本中获取系统时间进行替换

脚本内获取系统时间进行替换变化时间参数的代码

运行的结果:

测试运行结果

看完以上的问题和参考方法之后,倒回来给你们解释一下我设计的csv用例上面的字段含义,你们就会大概明白我为什么会这样设计。

【大家有更好的建议,别忘了提供窝!】

csv用例字段的解释

需要操作多个sql语句的时候,应该怎么办?


其实很简单,只需要在控件里面URL输入   ?allowMultiQueries=true    即可,如图所示

jdbc连接控件

之后就可以在输入sql的地方操作多个sql语句:(注意输入,并且注意是否自动提交

下次我会接着讲解数据比对的问题窝!

相关文章

网友评论

      本文标题:Jmeter进行接口自动化测试实战-学习分享-0.0.2

      本文链接:https://www.haomeiwen.com/subject/ittplqtx.html