karate - 简易说明

Karate

导包

        <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.22</version></dependency><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.14</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.10</version></dependency><!-- karate的依赖 必要--><dependency><groupId>com.intuit.karate</groupId><artifactId>karate-junit5</artifactId><version>1.1.0</version><scope>test</scope></dependency><!-- 可选 https://mvnrepository.com/artifact/com.intuit.karate/karate-core --><dependency><groupId>com.intuit.karate</groupId><artifactId>karate-core</artifactId><version>1.1.0</version></dependency><!-- cucumber报告美化包 --><dependency><groupId>net.masterthought</groupId><artifactId>cucumber-reporting</artifactId><version>5.6.1</version><scope>test</scope></dependency><!-- 如果没有引入Spring依赖或者引入spring版本过低  那么请单独引入jackson-core 和 jackson-databind--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.12.4</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.12.4</version></dependency><!-- Alibaba fastjson --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.83</version></dependency><!-- slf4j --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.26</version><scope>compile</scope></dependency><dependency><groupId>org.apache.avro</groupId><artifactId>avro</artifactId><version>1.8.2</version></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.10</version></dependency><build><plugins><!-- 打包保存注释的插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-source-plugin</artifactId><version>2.4</version><executions><execution><id>attach-sources</id><goals><goal>jar</goal></goals></execution></executions></plugin></plugins></build>

启动类

package toyota.it2;import com.intuit.karate.Results;
import com.intuit.karate.Runner;
import java.io.File;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import net.masterthought.cucumber.Configuration;
import net.masterthought.cucumber.ReportBuilder;
import org.apache.commons.io.FileUtils;
import org.junit.Test;public class TestRunner {/*** karate测试类*/@Testpublic void testParallel() {Results results = Runner// 指定feature文件的路径.path("src/test/resources/toyota/it2")// 指定测试运行的tag.tags("@test").karateEnv("test")// 输出json格式的cucumber报告.outputCucumberJson(true)// 是否对karate的测试报告进行备份.backupReportDir(true)// 指定并发线程数量.parallel(1);// cucumber报告生成generateReport(results.getReportDir());// 失败测试用例断言// assertEquals(0, results.getFailCount(), results.getErrorMessages());}/*** CucumberReport生成.** @param karateOutputPath*/public static void generateReport(String karateOutputPath) {String projectName = Paths.get(".").toAbsolutePath().normalize().getFileName().toString();Collection<File> jsonFiles = FileUtils.listFiles(new File(karateOutputPath), new String[] {"json"}, true);List<String> jsonPaths = new ArrayList(jsonFiles.size());jsonFiles.forEach(file -> jsonPaths.add(file.getAbsolutePath()));Configuration config = new Configuration(new File("target"), projectName);ReportBuilder reportBuilder = new ReportBuilder(jsonPaths, config);reportBuilder.generateReports();}
}

Karate

@test
Feature: TestBackground:# Test* def KarTest = Java.type('toyota.karate.KarTest')# 这个是读取的case描述的文件的位置* def caseList = read('classpath:toyota/it2/test/data/case.json')Scenario Outline: <id> - <desc>When def result = KarTest.insertUser()Then match result == <result>* KarTest.deleteUser()Examples:| caseList |

Data

[{"id": "001","desc": "插入数据","result": 1},{"id": "002","desc": "插入数据","result": 1}
]

启动

mvn clean test -DargLine="-Dkarate.env=test" -U -e -Dtest=IT1Runner -Dkarate.options="--tags @test"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/197891.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hive数据倾斜之:数据类型不一致导致的笛卡尔积

Hive数据倾斜之&#xff1a;数据类型不一致导致的笛卡尔积 目录 Hive数据倾斜之&#xff1a;数据类型不一致导致的笛卡尔积一、问题描述二、原因分析三、精度损失四、问题解决 一、问题描述 如果两张表的jion&#xff0c;关联键分布较均匀&#xff0c;没有明显的热点问题&…

掌握 Go 语言中的循环结构:从基础到高级

一、if else(分支结构) 1、if 条件判断基本写法 package main import ("fmt" ) func main() {score : 65if score > 90 {fmt.Println("A")} else if score > 75 {fmt.Println("B")} else {fmt.Println("C")} } 2、if 条件判断…

内网环境安装K8S1.20.11版本集群

目录 第一章.实验要求和环境 1.1.实验要求 1.2.实验环境 1.3.依赖关系处理 第二章.K8S的安装过程 2.1.初始化到集群安装成功 ------------------------------ 环境准备 ------------------------------ docker安装好了后 2.2.安装K8组件 -------------------- 部署K8…

1-Hadoop原理与技术

单选题 题目1&#xff1a;安装Hadoop集群时&#xff0c;是在哪个文件指定哪些机器作为集群的从机&#xff1f; 选项: A datanode B slaves C yarn-site.xml D core-site.xml 答案&#xff1a;B ------------------------------ 题目2&#xff1a;Hadoop配置文件所在目录是哪…

计算机基础知识64

ForeignKey属性 to&#xff1a;设置要关联的表 related_name&#xff1a; 反向操作时&#xff0c;使用的字段名&#xff0c;用于代替原反向查询时的’表名_set’ related_query_name:反向查询操作时&#xff0c;使用的连接前缀&#xff0c;用于替换表名 to_field:设置要关联的表…

最长连续序列(leetcode 128)

文章目录 1.问题描述2.难度等级3.热门指数4.解题思路方法一&#xff1a;排序方法二&#xff1a;哈希表 5.实现示例参考文献 1.问题描述 给定一个未排序的整数数组 nums &#xff0c;找出数字连续的最长序列&#xff08;不要求序列元素在原数组中连续&#xff09;的长度。 请你…

【华为OD题库-049】评论转换输出-java

题目 在一个博客网站上&#xff0c;每篇博客都有评论。每一条评论都是一个非空英文字母字符串。评论具有树状结构&#xff0c;除了根评论外&#xff0c;每个评论都有一个父评论。 当评论保存时&#xff0c;使用以下格式: 首先是评论的内容; 然后是回复当前评论的数量。 最后是当…

如何保持操纵机构丝杆的精度?

滚珠丝杆是操纵机构中的重要组成部分&#xff0c;可以传递较高的扭矩&#xff0c;并且具有低摩擦、高效率和快速响应的特性&#xff0c;这使得操纵机构能够实现高速、高精度的运动控制&#xff0c;这对于整个系统的性能和精度具有决定性的影响&#xff0c;保持操纵机构丝杆的精…

互联网Java工程师面试题·Spring Boot篇·第二弹

目录 8、什么是 YAML&#xff1f; 9、如何实现 Spring Boot 应用程序的安全性&#xff1f; 10、如何集成 Spring Boot 和 ActiveMQ&#xff1f; 11、如何使用 Spring Boot 实现分页和排序&#xff1f; 12、什么是 Swagger&#xff1f;你用 Spring Boot 实现了它吗&#xff1f; …

YoloV5改进策略:Swift Parameter-free Attention,无参注意力机制,超分模型的完美迁移

摘要 https://arxiv.org/pdf/2311.12770.pdf https://github.com/hongyuanyu/SPAN SPAN是一种超分网络模型。SPAN模型通过使用参数自由的注意力机制来提高SISR的性能。这种注意力机制能够增强重要信息并减少冗余,从而在图像超分辨率过程中提高图像质量。 具体来说,SPAN模…

MATLAB 系统辨识 - 在线估计 - Online Estimation

系列文章目录 MATLAB 模型参考自适应控制 - Model Reference Adaptive Control MATLAB 自抗扰控制 - Active Disturbance Rejection Control 文章目录 系列文章目录前言一、在线参数估计二、使用步骤 前言 在线估计&#xff08;Online estimation&#xff09;算法是在物理系…

C语言枚举

枚举的定义 定义&#xff1a; C语言提供了一种枚举&#xff08;enum&#xff09;类型&#xff0c;能够列出所有可能的取值&#xff0c;并给它们取一个单独的名称使用该类型可以定义枚举类型的变量&#xff0c;一个枚举类型变量可以包含一组相关的标识符&#xff0c;其中每个标…

【wvp】测试记录

ffmpeg 这是个莫名其妙的报错&#xff0c;通过排查&#xff0c;应该是zlm哪个进程引起的 会议室的性能 网络IO也就20M

全志T527设置gpio口输出高电平实际输出低电平

前言 在调试T527的时候&#xff0c;主板另外添加了gpio口去控制usb口的电源开关&#xff0c;软件上面需要在内核运行的时候将gpio口设置输出高电平&#xff0c;usb口才可以正常使用。改好系统固件后&#xff0c;升级发现&#xff0c;机器开机动画过程中可以控制gpio口去打开us…

ArkUI组件--Button组件

1.声明Button组件 Button(label?:ResourceStr) #label是按钮上显示的文本 ①label是文字类型 所写文字会在按钮上显示 ②不输入label内容&#xff0c;需要额外定义一些描述。例如插入图片&#xff08;需要定义图片属性&#xff09; Button(){Image($r(app.media.xxx)).wi…

解决Flutter报错boxconstraints has non-normalized height/width constraints

出错场景 如果我们在使用约束时没有正确的传入宽高&#xff0c;比如以下代码 ConstrainedBox(/// 设置最小高度为150, 最大高度为100.constraints: BoxConstraints(minHeight: 150,maxHeight: 100),child: Container(color: Colors.red,child: Center(child: Text(呵呵),),),…

54.螺旋矩阵(顺时针打印矩形元素)

题目 class Solution {public List<Integer> spiralOrder(int[][] matrix) {int m matrix.length, n matrix[0].length;int leftUpM 0, leftUpN 0, rightDownM m - 1, rightDownN n - 1;List<Integer> res new ArrayList<>();while (leftUpM < ri…

【题目】栈和队列专题

文章目录 专题一&#xff1a;栈系列1. 中缀表达式转后缀表达式&#xff08;逆波兰式&#xff09;2. 有效的括号3. 用栈实现队列4. 最小栈 专题一&#xff1a;栈系列 1. 中缀表达式转后缀表达式&#xff08;逆波兰式&#xff09; 算法原理 2. 有效的括号 题目链接 算法原理 代…

SpringBoot-监听Nacos动态修改日志级别

目录 一、pom文件 二、项目配置文件 三、日志配置文件 四、日志监听类 五、日志动态修改服务类 线上系统的日志级别一般都是 INFO 级别&#xff0c;有时候需要查看 WARN 级别的日志&#xff0c;所以需要动态修改日志级别。微服务项目中使用 Nacos 作为注册中心&#xff0c…

C++面试宝典第2题:逆序输出整数

题目 写一个方法&#xff0c;将一个整数逆序打印输出到控制台。注意&#xff1a;当输入的数字含有结尾的0时&#xff0c;输出不应带有前导的0。比如&#xff1a;123的逆序输出为321&#xff0c;8600的逆序输出为68&#xff0c;-609的逆序输出为-906。 解析 这道题本身并没有什么…