Java接口自动化案例管理,API接口自动化示例

API接口自动化示例

本章节内容:应用LUCKYFRAME来编写API测试用例的过程。

1 、添加项目名称和归属部门

进入系统管理--->项目管理--->点击添加,填写“项目名称”、“归属部门”、“项目标识”,点击“确定”,如图下图。备注:归属部门在系统管理--->部门管理模块设置。

08d687641befa60dc8b190a42ad77281.png

2、添加协议模板

说明:协议模板是什么?是构造接口请求必须遵守的基础约定;不理解先放一边,重点是要知道一个接口对应一个协议模板。

进入测试管理--->协议模板--->点击添加,选择项目名称,模板名称填写接口名称,消息头域(一般访问接口的时候需要先登录,那么此处就需要填写,格式看示例要求)。其他选项可以先默认,点确定,完成一个协议模板的添加。如下图。

3f5cb8a7b7d17b94bec22610280cc33a.png

勾选模板类型,点击“模板参数”,如下图。

d1766683891164712ac6b7f38d87d7d3.png

RAW标签页面,填写格式遵循JSON格式请求,如下图。(此处不懂JSON格式需要去百度一下)。

8b50d29ac488b71135a6e51a6743c9d5.png

FORM标签页面,各种参数类型填写格式,如下图。

5d29620c42b6a0d7b500d6a633f8369f.png

String:字符串

Json对象:{"endDate":

"string","startDate": "string" }

JsonNARR:[{"endDate":

"string","startDate": "string" }]

File对象:D:\F盘\01tlw\04接口测试\1.jpg(即LuckyFrameClient本地磁盘上传文件的路径)

Number对象:1.2.3……

Boolean对象:true or  false

注意:填写RAW标签和FROM标签,只填写其中一种。

3、添加用例模块

进入测试管理--->用例模块--->选中项目名称,点击新增,填写父模块、模块名字、显示顺序、备注。点击“确定”,完成模块的添加,如下图:

4e8525a2249ec0c6fb4384e7d1ca18de.png

4、用例管理

进入测试管理--->用例管理--->点击添加,如下图:

300092376c0b5dd85d18323a15f17c1d.png

选择项目名称、用例模块,填写用例名称、用例类型选择“HTTP接口”,点击“确定”如下图:

924b64295e634c738b21f96479f14830.png

勾选用例名称,点击“用例步骤”,如下图:

92f630ba7dc6e3d9e596feba7954a17b.png

用例步骤页面,如下图:

c16e106f20fe056885245c943c6455c9.png

4.1步骤编辑页面基本使用方法

4.1.1包|定位路径

填写接口的地址,如:http://10.0.7.105/validation/rest/quality

4.1.2方法|操作

此处单击可以选择系统内置的一种方法名,如:HttpClientGet

4.1.3参数

填写接口参数,传入多个参数用|分隔,参数名称和参数值用#分隔,如:id#1|name#test

4.1.4步骤动作

填写该行用例步骤执行后的等待时间;等待1秒格式,如:1#wait

4.1.5预期结果

此处填写接口预期的返回值;模糊匹配返回值中是否有200,如:%=200

4.1.6类型

默认http接口

4.1.7扩展字段

此处单击可以选择已添加过的协议模板,如:新增质检模型接口

4.1.8示例

c08c79041b5607bf1c55a3f57771275f.png

4.1.9调试

点击调试按钮,进入用例调试页面,如下图

60475c95a467eab0d46e49549201b49c.png

注意调试时要先进入系统管理--->客户端管理--->点击添加客户端,且状态正常,如下图:

18ad89b9b36f08944cd91b5bbaaae95f.png

客户端添加完成后,点击“调试”按钮,进入用例调试页面,如下图:

c3e6805f38d1592cff6deabd2dba4bbb.png

根据用例调试页面的日志,可以查看用例的执行结果是否正常,到此完成接口用例编写的介绍。

4.2步骤编辑页面进阶使用方法

4.2.1参数引用以及传递

将用例里面前面步骤的执行结果,传递至后续步骤的包路径、方法、参数、预期结果中当成参数;

赋值局部变量:$=value

引用:@value用例里面前面步骤的执行结果,传递至后续步骤的包路径、方法、参数、预期结果中当成参数; 当您需要引用项目中定义的公共参数时,直接使用@变量名引用即可。

赋值全局变量:$A= value

赋值局部变量$=value,作用域只在单条用例内的步骤间进行传递,而关键字$A=value支持作用域扩展到整个任务执行的生命周期内。只要是同一个调度任务内,都可以对此变量进行引用以及传递。

注意:

当遇到参数值里面本身带了字符@的,请使用@@来转义。比如参数值是一个邮箱地址XX@qq.com,那么这时候你应该写成XX@@qq.com.

当遇到参数值里面本身带了字符|的,请使用\\|来转义。比如有一个参加值是:tfwfsf|ysggfw|ggsvs,那么这时候你应该把这个参数写成这样:tfwfsf\\|ysggfw\\|ggsvs

示例:

2641a46c3a4b6a4c6b7731a3ce71dff2.png

4.2.2预期结果精确匹配

将用例里面【方法|操作】执行的结果,与【期望的结果】字段里面的字符串进行精确匹配;

直接在预期结果里面填写需要匹配的字符串即可。

4.2.3预期结果模糊匹配

将用例里面【方法|操作】执行的结果,与【期望的结果】字段里面的字符串进行模糊匹配;

模糊匹配:%=value

示例:

f8dd11a9d7307e8dfb500ffb578a90e4.png

4.2.4正则方式结果模糊匹配

将用例里面【方法|操作】执行的结果,与【期望的结果】字段里面的字符串通过正则表达式进行匹配;

模糊匹配:~=value

正则表达式写法,请自行百度,不再累述。针对多个结果模糊匹配,非包含字符匹配都可以用此种方式,非常灵活。

4.2.5步骤间添加休眠时间

步骤执行完成后,等待N秒,在【步骤动作】中加上“10#Wait” 10表示10秒;

示例:

0ce86aa4332fa0ae918f5662636927a3.png

4.2.6随机参数值引用

目前支持两种模式,一种是随机数字,一种是获取当前时间的指定格式

随机数字引用关键字参数:@{random[开始数字][结束数字]}比如你想随机一个指定区间的手机号码,如:137XXXX8888可以在引用参数的时候这样写:137@{random[1000][9999]}8888

获取当前时间指定格式引用关键字参数:@{timenow[日期时间格式]}比如:想生成这样一个字符串 现在时间是:2019-01-25 11:13:36可以在引用参数的时候这样写:现在时间是:@{timenow[yyyy-MM-dd HH:mm:ss]}其中[yyyy-MM-dd HH:mm:ss]中的参数与JAVA类SimpleDateFormat的格式用法是一致的,里面的间隔符(比如-,: )可以删除或是用其他任意字符替换。如果格式不正确的话,会使用默认格式进行引用。

下面做下简单的说明:

yyyy代表年份

MM代表月份

dd代表日期

HH代表24小时制

hh代表12小时制

mm代表分钟

ss代表秒

4.2.7接获取JSON串中KEY值的方法

4.2.7.1客户端中内置驱动增加直接获取JSON串中KEY值的方法

包路径:luckyclient.driven.SubString

方法名:getJsonValue

参数:@loginrespone|accessToken|1

备注:

@loginrespone:JSON字符串

accessToken:JSON字符串中需要获取值的key

1:key值索引(序号)

4.2.7.2步骤动作新支持的关键字。

key[序号]#getJV获取测试结果中JSON对象中,指定KEY的值,比如测试结果返回:{["name":"张三","age":"18"]["name":"李四","age":"17"]},如果想获取李四的年纪 在步骤动作中需要这样写age[2]#getJV获取到以后,会拿到17这个值,给预期结果中的关键字进行判断,是匹配,还是赋值都可以。

[startstr][endstr]#subCentreStr截取测试结果中指定开始字符以及结束字符的中间字符串,比如测试结果返回:{["name":"张三","age":"18"]["name":"李四","age":"17"]},如果想获取李四的年纪 在步骤动作中需要这样写[age":"]["]}]#subCentreStr获取到以后,会拿到17这个值,给预期结果中的关键字进行判断,是匹配,还是赋值都可以。

[startnum][endnum]#subCentreNum截取测试结果中指定开始位置以及结束位置的中间字符串,比如测试结果返回:{["name":"张三","age":"18"]["name":"李四","age":"17"]},如果想获取李四的年纪 在步骤动作中需要这样写[45][46]#subCentreNum获取到以后,会拿到17这个值,给预期结果中的关键字进行判断,是匹配,还是赋值都可以。

[rgex][index]#subStrRgex通过正则截取测试结果中的字符串,[rgex]在[]中填写正则表达式,[index]在[]中填写匹配到字符串的序号,拿到截取的值以后,给预期结果中的关键字进行判断,是匹配,还是赋值都可以。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值