lf知识星球banner

HTTP接口测试还可以这么玩?

2018-03-13 17:13:00
Peggy & Seagull
原创
11350

随着HTTP接口在IT项目的广泛应用,特别是json格式报文的兴起,测试人员对此类型的接口测试需求也越来越大。


01


现在市面上 能支持HTTP接口测试的开源工具已经有很多,使用体验都算不错,但大多数的工具都是基于桌面客户端的,测试资源共享不方便也不够及时,这对于测试人员的协作来讲可是致命的。


而且,对于测试自动化来讲,定时执行调度、科学的测试用例管理也相当重要,这些目前很多市面的开源工具都没有办法做到。


LuckyFrame开源测试平台针对这些痛点进行了改进, 目前已经可以支持HTTP协议的纯关键字驱动。


我们可以将 基于接口的数据逻辑校验与数据正确性校验,以及部分业务逻辑校验,演化为接口测试用例,通过一个统一的入口来控制接口自动化的运行,通过日志或者报告的形式来展现。


以此来实现最大限度的减轻功能测试在这部分任务上的工作量,提高工作效率。


好了话不多说,下面就来介绍LuckyFrame是如何实现http接口自动化的。


02


在进行任何操作前,你需要一个LuckyFrame测试平台的帐号,使用帐号登录后,进入UTP模块下的“协议模板”页面,我们可以在这里进行HTTP接口协议的模板维护。 主要步骤如下:


第一步:点击<新增模板>,输入接口相关的基本信息,然后保存。需要提一下的是,平台目前支持的接口协议类型包括HTTP和SOCKET,编码格式包括UTF-8和GBK。


另外: 如果您需要给HTTP请求设置头域,那么在请求头域栏,按【头域参数=头域值】的格式填写,如果有多个 头域参数,请使用【;】号进行分隔,如果你的头域值需要Base64格式的编码,那么可以按【头域参数=Base64(头域值)】的格式填写。



第二步:在协议模板列表中,勾选刚才新增的记录,点击<模板参数>按钮,可以对接口的请求参数进行维护。参数类型支持String、JSON对象、JSONARR对象、File对象、数字类型、布尔类型,选择你所需要的参数类型就可以了。



到此,你完成了一个http接口协议模板的添加。接下来,就可以针对这个接口,来进行接口测试用例的扩展了。


03


我们在UTP模块下的“用例管理”页面,进行测试用例的维护。


首先,点击<新增用例>按钮,填写基本信息后保存,就新增了一条用例。


接下来,我们要对用例的详细步骤进行维护。在用例列表勾选刚才新增的用例,点击<编辑步骤>按钮进入用例步骤编辑页面。记住要先将“类型”选择为HTTP,然后输入其他信息:


  • “包 | 定位路径”中输入http接口的请求地址


  • “方法 | 操作”为下拉选项,可选择接口请求方法,这里我们选择HttpClientPost


    注意:如果整个请求格式是JSON,那么你在用例选择请求类型的时候,一定要选择HttpClientPostJSON的类型,这样才会自动把你的HTTP模板格式化成JSON


  • “参数”留空,则使用协议模板中的所有默认参数值。如果需要修改默认参数值,则以“paramname1#value1|paramname2#value2|...”的格式填写此项


    注意:

    1.#用于分隔参数名称和参数值,如果要自定义多个参数,参数与参数之间则用|分隔。

    2.如果你想修改的是“请求头域”的默认值,参数名称需要以“headmsg(paramname)”的格式进行填写,示例:headmsg(Access-Token)#参数值


  •  “步骤动作”为下拉选项,可选项为自动联想的系统已有HTTP协议模板,选择我们需要的协议模板即可 注意:V3.0及以上的版本下拉选项已经改到扩展字段,步骤动作没有下拉选项


  •   “预期结果”处输入我们期望的同步回执结果


下面简单示例解释


第一步:用户登录,服务器返回JSON串,其中有参数带了用户登录的token


第二步:通过自己写的一个测试驱动桩,处理服务器返回的JSON串,截取token值出来,赋值变量token(测试结果赋值写法:$=变量名)。


第三步:发送新建请求,把token值赋值到HTTP协议模板头域,完成用户鉴权。



需要增减步骤时,点击前一个步骤后的“+”“-”小图标即可,而“↑”“↓”可移动所选步骤位置。


令我们惊喜的是,我们还可以在这里直接进行用例的<调试>,可以通过调试来验证该条用例的有效性。


进行到这里,你已经知道了如何创建接口测试用例。接下来的问题,就是如何基于你的测试用例展开接口测试工作了。


04


LuckyFrame的方式,是通过把用例添加到测试计划中,通过执行测试计划来批量执行测试用例。


这些我们将在下一篇中进行介绍,有兴趣的请继续关注。感谢阅读!


文章原创申明
  • 本站文章以及相关内容除注明 转贴外,均为本站 原创翻译

  • 如果本站转载的文章涉嫌侵犯了您的权益,请在评论区留言或是邮件联系管理员及时删除 【admin@luckyframe.cn】

评论列表
星月 2019-04-11 13:49:09 回复
我理解驱动桩是做自定义的校验时用到的,比如接口类型的用例,通过定义包名和类名利用反射机制调用对应的方法。http类型的测试用例调试的时候还需要驱动桩吗,每种类型的用例调试时都需要调用驱动桩,我看代码对于http类型的用例是直接发送请求和期望值进行比较的,不知道理解是否正确
Seagull 2019-04-12 16:54:25 回复
http不需要驱动桩的,你说的是对的
指间温暖 2019-04-04 20:36:57 回复
协议模板中已默认参数,用例中可以增加默认值以为的参数吗?比如:协议模板中只有这一个参数{"eqNum":"......"},有的用例是两个参数,{"eqNum":"....","triggerType":....},能在用例中参数中triggerType#... 这么写吗?
Seagull 2019-04-08 08:41:59 回复
不能,必须一次性在接口中写全哦,用例步骤中只能更改参数值,不能增加
冬生 2019-03-29 15:51:37 回复
这个示例的测试驱动桩能参考一下吗
Seagull 2019-04-08 08:44:21 回复
你搜索一下官网其他的文章,应该有示例的
指间温暖 2018-10-19 11:35:16 回复
http类型测试,request 参数如何进行参数化
Seagull 2018-10-19 17:21:36 回复
参考下这篇文章:http://www.luckyframe.cn/allwz/jsoncs-77.html
1/1
发表评论
评论通过审核后显示。
付费知识圈