前言jmeter 这个工具既可以做接口的功能测试,也可以做自动化测试,还可以做性能测试,其主要用途就是用于性能测试 。但是,有些公司和个人,就想用 jmeter 来做接口自动化测试 。
你有没有想过呢?
下面我就给大家讲讲,用 jmeter 如何做接口自动化测试 。
文章插图
jmeter 与接口自动化测试【90%测试猿都想学的Jmeter技能,你get吗?】如果要你用 jmeter 来做接口自动化测试,你是不是把几乎每一个测试用例,都是用一个取样器来实现?
相信很多人都是这么想的,也是这么干的 。
但是,很遗憾,你这种,是初级入门做法 。你能实现所有的测试用例都被执行,但是,你写脚本和维护脚本的时间,可能比你用手工执行所有的测试用例时间还要长,而且还可能长很多 。
因为,只要开发人员改了接口一个地方,你得从所有取样器中,找出与这个接口相关的所有取样器,然后一一修改,万一有遗漏,哪出现的失败,不是 bug,而是你脚本的问题 。所以说,这是入门级人干的事情 。
那有没有更好的办法呢?
平时写功能测试用例的时候,习惯用 Excel 的同学,可能就会想,我能把自动化测试用例每个信息都写在 Excel 表格中,然后,使用 jmeter 的 CSV 数据文件读取功能,把它读取出来执行,是不是就可以呢?
这种方法,就比前面的方法好了很多,用例还是用 Excel 来维护,只是使用 jmeter 来读取,执行就可以了 。整体的可维护性要好很多很多,工作量也要少很多 。
但是,在真正动手去做的时候,我们又会发现,困难重重 。
写过自动化测试用例的同学,应该会有这样的经历,就是做接口测试时,我们通常会先对某个接口各种参数进行测试,这样,接口地址相同,但是参数不一样,校验的接口也一样 。
在做完单个接口之后,我们还会做由多个接口构成的业务测试,这个时候,每个接口地址都不一样,接口请求的方法也可能不一样,最后的校验点,也可能变化,这样的自动化脚本,应该要怎么写呢?
第一个对单接口,编写自动化测试脚本,可能还好实现,因为接口相同,那么他的请求方法肯定相同,虽然,请求头、请求体、校验信息可能不同,但是,至少还有共同点 。
而第二个,对业务编写自动化测试脚本,那就很难了,因为几乎所有的都可能不同,请求的协议、方法、请求头、请求体,全都可能不同,而且请求头和请求体还可能要有动态值,这个怎么做呢?
万事开头难,只怕去实践 。只要你想好了,真正去动手做了,这很多问题,就不那么难了 。
有很多事情,我们可以加条件判断,和循环控制等逻辑控制器,就可以实现的 。
靠我一篇文章,就把它全部写出来,这是不现实的,所以,今天,主要讲一个,被很多同学问到,难倒了一大片好汉的问题 。
文章插图
看到这个问题,你想到什么方法?
实操案例
如果你在 jmeter 中,每个接口写一个取样器,这个问题很好解决,直接使用参数引用就可以解决,但是,这个同学的做法是把测试用例写在 CSV 文件中,然后使用 jmeter 去读取 CSV 文件,执行测试用例,如何来实现动态参数呢?
肯定,有的同学已经想到了,使用变量引用,在 CSV 中,按照 jmeter 的写法,写引用变量 。
好了,给大家一个看一个参考:
文章插图
这个 CSV 文件中,有两个不同的接口,说明是做的业务场景自动化测试,第一个接口,是注册,那么每次注册的账户肯定不能相同,如果相同了,那么第二次肯定失败,所以,就使用了随机函数,让注册的账户自动生成 。
第二个接口是登录,当然,可以用固定账户登录,但是,我们前面进行注册,最好还是用前面注册的账户来登录,这样更加真实,body 中使用了变量引用,显然,这是用到了关联 。
我们用 jmeter 写个脚本,来运行下,看能否成功 。
文章插图
从脚本来运行情况来看,我们可以取到名称,地址,和请求体,但是,因为请求体在 CSV 中写了 jmeter 函数,结果读取出来运行时,还是原样运行,并没有对请求体中的函数进行执行 。
推荐阅读
- 软件测试之如何避免漏测
- 渗透测试小工具-sqlmate
- 电动车|这些错误的电动车充电方式:90%的人全中
- MPV|“MPV世家”旗舰有多强?上汽大通MAXUS G90上市:奢华、霸气!
- AMD|AMD RDNA3架构神了!RX 7900 XT曝光:浮点性能4倍于6900XT
- 笔记本|北京5月绿色节能消费券开领:买笔记本、平板直接扣 共900元!
- axios配置vue项目本地测试环境跨域解决方法
- 性格颜色测试衡量你的性格
- 猴子最怕哪个动物?
- 互联网时代黑客如何威胁你的资产?Web业务安全测试