案例:如何使用接口测试框架Karate创建一个API测试?
应用场景:在API的测试中 , 测试某些具体数据值 , 比如返回的结果是否是需求的类型 , 文件是否是符合且具备完整的数据结构 。 这些都是必须且很细致的测试工作 。 另外 , 组织、运行测试场景 , 以及演示测试结果这些也都使得测试人员要更加快速的找到合适的API测试方法 。 今天就详细地介绍如何用Karate组织、运行测试场景 , 以及验证Json 文件数据的正确性 。
文章插图
如果您想跟着以下示例操作 , 需要做好以下配置:
测试框架:Java + Karate + Junit 5
语言:Java, Cucumber
IDE:Intellij IDEA
项目类型:Maven
Karate 项目配置
为了能让跟着步骤操作的小伙伴们真正地运行起代码来 , 所以下面是有关配置的操作(注:如您已经熟悉这些配置 , 可以跳过 。 )
1.创建一个新的Maven 项目
2.POM配置 (这里介绍的清楚一些 , 有时就是因为配置没设好 , 脚本就是运行不起来 。 )
文章插图
3.配置 Cucumber
依次打开Files > Settings > Plugins : 确保cucumber for Java 和Gherkin 插件已经安装成功 。
文章插图
创建 Karate 测试用例
1.创建测试场景 (feature 文件)
如下图显示 , 本示例中country-get.feature 文件前面有一个绿色的图标 , 这就是cucumber feature 文件的标识 。
文章插图
2.编写测试场景
背景 Background: 本示例中 , url 和 header 是所有测试用例中共用的一部分 , 所以就把它们写在了Background中 。
文章插图
用例一:测试get method 并验证响应代码 , 文件长度以及第一个字段值 (期待成功)
文件长度:这里实际是指返回的一个json数组里包含了多个.json 文件 , 比如本实返回了250个文件
文章插图
@Value: @ 注释 是测试人员组织测试用例时非常好用的小工具 。 我们可以一组类似的测试用例用 相同的 @ 把它它们标识出来 , 这样运行的时候根据需求也可以分组执行 。
Given: path 从下图中可以看出 , path 只是后面的一部分而已 , 当运行的时候 , 会和Background 中的url自动地连接在一起 。相当于
When: 本例中我们测试 get 请求
Then, And : 这是本例中要验证的结果 , 期待请求发表以后 , 会收到成功的返回代码: 200 ,并且包含有 250 文件 , 同时第一个.json文件的第一层nativeName 要等于验证的字符串 。 (注:在第二截图里显示了实际返回的nativeName 值)
文章插图
文章插图
用例二 :测试带有参数的get method 并验证响应代码 , 文件长度以及国家名称 (期待成功)
本例中多加了一个参数:相当于请求
文章插图
用例三:测试带有参数的get method 并验证响应代码和返回的文件内容 (期待失败)
本示例是测试当请求有误时 , 系统的响应信息 。 和前一个示例不同的是 , 把国家的名字给错了 , 请求的url:
在验证时 , 第一个match 中期待返回的status 是一整型 ,第二match中期待返回的status是一个字符型 。 根据实际返回信息 (如下图二) ,status应该是一个整型 。
注: 这个用例中的@Contents 与前二个示例不同. (在运行文件中 , 您能切身体会有什么效果了 。 )
文章插图
文章插图
创建运行文件
如下图所示 , 这里创建5 种运行方式 ( @Karate.Test) 。 下面我们依次介绍如下:
·testTags(): 运行同一文件夹里country-get.feature 里面标记是@Value的测试场景
·testSingle(): 运行同一文件夹里country-get.feature 里面所有的测试场景
·testFullPath(): 指定运行feature 文件夹里country-get.feature 里面标记是@Contents 的测试场景
·testPost(): 想运行country-post.feature文件中的所有测试场景 (注:这里是一种错误的写法 , 文件运行不起来 , 因为当前文件夹下没有country-post.feature 文件)
- 会员|美容院使用会员管理软件给顾客更好的消费体验!
- 页面|如何简单、快速制作流程图?上班族的画图技巧get
- 桌面|日常使用的软件及网站分享 篇一:几个动态壁纸软件和静态壁纸网站:助你美化你的桌面
- 培育|跨境电商人才如何培育,长沙有“谱”了
- 抖音小店|抖音进军电商,短视频的商业模式与变现,创业者该如何抓住机遇?
- 计费|5G是如何计费的?
- QuestMobile|QuestMobile:百度智能小程序月人均使用个数达9.6个
- 车轮旋转|牵引力控制系统是如何工作的?它有什么作用?
- 视频|短视频如何在前3秒吸引用户眼球?
- Vlog|中国Vlog|中国基建如何升级?看5G+智慧工地
