Jmeter
接口测试:
(1)整体思路:
1、按业务流程先写覆盖整个流程的正向case,然后在根据情况写校验异常的case
2、发出post或put请求,新建或编辑后,一定要get验证,确保改动生效;
3、运行,查看结果树。
(2)fail的case解决办法:
1、400:参数校验错误,需检查body中的参数是否正确;业务数据错误,需确认事件发生是否符合流程;
2、404:要核对接口地址是否错误,在检查参数类型,参数名称;
3、500:服务器错误,需找开发帮忙看下;
4、对于需要添加三件套的case要正确添加,若报错,需要去检查三件套是否有误;
5、在发出请求后马上获取,存在一定的问题,有可能间隔时间太短,请求还没有完成,导致获取不到发出的请求,需要加一定的延时;
6、由于自己的一时疏忽导致书写错误,或一些细节的错误,自己检查不出来时可以让小伙伴帮忙检查下也许就可快速找到问题所在(如body中没有加{});
(3)建议:
覆盖业务流程case:
1、接口文档的内容比较散,但是也是有关联的,在拿到接口文档时,不要急于开始写 case,先将文档通读一遍,有一个大致的熟悉和了解;
2、然后根据需求和文档结合,将散乱的接口串联起来,尤其是有上下依赖关系的,如果有必要可以自己简单画一张流程图,将整个业务划分为几个流程,这样可以方便我们再去找对应接口,做到不是看着接口写 case,受接口支配,而是看着流程找自己想要的接口,覆盖全面,事半功倍;
3、可以根据自己列出的几个流程先在jmeter新建几个对应的线程组,然后只需将对应的接口添加进去即可,快捷、清晰、有秩序;
4、在写完一个流程的case后,还需要在对一遍接口文档,防止丢落;
校验异常case:
1、要根据需求和接口文档required项找出那些是必传项,每项的类型,验证缺失、非法等异常;
2、不必要将每项的各种异常全都验证一遍,尤其是走同一套逻辑的操作,例如新建和编辑,可以挑一些在新建时验证,挑一些在编辑时验证;这样既可以覆盖全面,又可以节约时间和成本;
3、若某个接口的必选项包含在URL中,可以选择性进行异常测试,不验证也可
其他:
1、可以在每个线程组下添加一个结果树,这样方便我们查看相应的case,避免其他的结果干扰;
2、不要直接从结果树的响应数据中直接copy,会存在特殊字符,导致报错;(可以将其装换为text,copy到json格式化工具中https://www.bejson.com,点击校验,在copy或对照)
3、运行时要注意把不想运行的case全部禁用,以防发生干扰;
4、接口文档不一定全面,当写case的时候发现想实现的流程没有给出相应的接口时,需要跟开发确认并添加;
5、结果为pass的不一定没问题,要结合实际情况判断,例如:在有关排序的case中,要注意可能因为运行时间太快,导致排序出错,但数组中数据依旧包含在预期结果中;
6、当接口文档或实际结果与预期不符时,有时是开发根据实际开发情况做的处理与我们的预期有一些出入,需要与开发沟通,灵活解决,不必一成不变。