全功能测试框架 - Carina

Carina是一个基于Java的测试自动化框架,它将所有测试层结合在一起:移动应用程序(web、本机、混合)、web应用程序、REST服务和数据库。

github:GitHub - zebrunner/carina: Carina automation framework (TestNG): Web, Mobile, API, DB etc testing...

特点

  • Carina框架构建在最流行的开源解决方案(如Selenium、Appium、TestNG)之上,可以减少对特定技术堆栈的依赖。

  • Carina支持所有流行浏览器(即Edge、Safari、Chrome、Firefox)和移动设备(iOS/Android)。移动域的一个特殊特性是:它在IOS/Android之间重用测试自动化代码,高达70-80%。

  • Carina是跨平台的。测试可以在Unix或Windows操作系统上轻松执行。您只需要安装JDK 11。

  • 该框架支持不同类型的数据库——关系数据库和非关系数据库(MySQL、SQL Server、Oracle、PostgreSQL),提供了使用MyBatis ORM框架实现DAO层的惊人体验。

  • API测试基于Freemarker模板引擎。它在生成REST请求方面具有很大的灵活性,并且响应由传入参数动态更改。

安装环境

  • 安装和配置JDK 11+

JDK安装配置参考其他资料

> java -version
java version "11.0.15" 2022-04-19 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.15+8-LTS-149)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.15+8-LTS-149, mixed mode)
  • 安装和配置Apache Maven 3.6.0+

Maven安装配置参考其他资料

> mvn -version
Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63)
Maven home: D:\Java\apache-maven-3.8.6
Java version: 11.0.15, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk-11.0.15
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 11", version: "10.0", arch: "amd64", family: "windows"
  • 下载最新版本的Eclipse和 TestNG插件,maven-dependency-plugin插件 和 lombok(可选)

从官方给的文档资料,比较执着于 Eclipse,众所周知,IntelliJ IDEA 现在更加主流一些。 为此,我又花费不少时间重新熟悉新版的 Eclipse, 当然,你坚持IDEA也问题不大,只是不同的IDE而已。

官方例子

为了帮助我们快速的熟悉carina项目,官方贴心的提供了demo项目。

github: GitHub - zebrunner/carina-demo: Carina demo project.

  • 克隆项目
> git clone https://github.com/zebrunner/carina-demo
  • 生成eclipse项目

进入crina-demo项目目录,clean清除目标目录中的生成结果,eclipse:eclispse生成 Eclipse 项目文件及包引用定义。

> mvn clean eclipse:eclipse
  • 安装依赖

安装的依赖已经在pom.xml文件中声明好了,install 安装相关依赖。

> mvn install
  • 通过eclipse导入carina-demo项目。

截图是一段HTTP接口测试的代码,代码设计还是非常优雅的,做了很好的封装,接口所用到的测试数通过json等文件进行管理。

这篇算初体验,有时间再详细阅读代码的一些设计思想。

运行测试

最后,是运行测试,通过mvn 命令执行api测试用例。

  • 运行测试
> mvn clean test -Dsuite=api[INFO] Scanning for projects......[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 43.318 s - in TestSuite
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  54.180 s
[INFO] Finished at: 2022-07-22T01:01:34+08:00
[INFO] ------------------------------------------------------------------------

整个运行过程会打印接口的详细信息。

  • HTML报告

报告就比较朴实无华了,提供了一些比较基本的信息。

总结

  • Carina被定义为全功能的测试框架,这其实是测试框架的发展方向,从单一支持 Web 测试 或接口测试,向更多测试类型支持。甚至是与平台整合。

  • 由于时间原因,还没有详细看 Carina 的API,所以,这篇文章写得比较简单。

  • 这个框架非常适合Java流的测试学习和使用。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

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

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

相关文章

OpenGL_Learn05(纹理)

1. 纹理贴图 wall.jpg (512512) (learnopengl-cn.github.io) 纹理过滤分为:邻近和线性,这跟opencv图像处理一样。 多级渐远纹理 四种采样方式: 代码实现: std_image.h https://github.com/nothings/stb/blob/master/stb_image.…

体验SOLIDWORKS旋转反侧切除增强 硕迪科技

大家在设计中经常使用的旋转切除命令在solidworks2024版本中迎来了新的增强,添加了旋转反侧切除选项。在设计过程中不必修改复杂的草图即可切除掉我们不需要的部分。使设计工作更加方便快捷。 打开零部件后,点击键盘上的S键并输入旋转切除以搜索该命令&a…

uni-app---- 点击按钮拨打电话功能点击按钮调用高德地图进行导航的功能【安卓app端】

uniapp---- 点击按钮拨打电话功能&&点击按钮调用高德地图进行导航的功能【安卓app端】 先上效果图: 1. 在封装方法的文件夹下新建一个js文件,然后把这些功能进行封装 // 点击按钮拨打电话 export function getActionSheet(phone) {uni.showAct…

Python最强自动化神器Playwright!再也不用为爬虫逆向担忧了!

版权说明:本文禁止抄袭、转载,侵权必究! 目录 一、简介+使用场景二、环境部署(准备)三、代码生成器(优势)四、元素定位器(核心)五、追踪查看器(辅助)六、权限控制与认证(高级)七、其他重要功能(进阶)八、作者Info一、简介+使用场景 Playwright是什么?来自Chat…

intellij idea拉取最新的依赖包

intellij idea setting 拉取最新的依赖包 File --> Settings --> Build, Execution, Deployment --> Build Tools --> Maven --> 勾选 Always update snapshots. 一般情况下,设置完就可以拉取到最新的依赖包了。 如下: 安装最新的依赖…

浅析运维平台在实现光伏发电数据监控的应用

安科瑞 崔丽洁 摘要:全球化经济社会的快速发展,加快了传统能源的消耗,导致能源日益短缺,与此同时还带来了严重的环境污染。因此,利用没有环境污染的太阳能进行光伏发电获得了社会的普遍关注。本文根据传统式光伏电站行…

Java随机获取某个范围内的随机整数

随机获取某个范围内的随机整数 一、代码 /*** 随机获取某个范围内的随机整数的值* param min 最小值* param max 最大值* return*/public static int randomNum(int min,int max) {// 创建一个Random对象Random random new Random();// 生成指定范围内的随机整数int randomI…

day02_第一个Java程序

在开发第一个Java程序之前,我们必须对计算机的一些基础知识进行了解。 常用DOS命令 Java语言的初学者,学习一些DOS命令,会非常有帮助。DOS是一个早期的操作系统,现在已经被Windows系统取代,对于我们开发人员&#xf…

zabbix6.4监控centos

1、关闭防火墙 setenforce 0 #关闭SELinux sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config #设置永久关闭SELinux systemctl stop firewalld.service #关闭防火墙 systemctl disable firewalld.service …

OPCUA 行业配套标准:机器人

OPC UA 定义了对象,对象类型,结构化组织能力和定义对象之间关系的能力,利用这些基础和衍生类型及对象,用户还可以搭建出更复杂的类型,关系和对象。 如果不同的厂商或者用户定义的信息模型不同,将会影响系统…

【蓝桥杯省赛真题41】Scratch电脑开关机 蓝桥杯少儿编程scratch图形化编程 蓝桥杯省赛真题讲解

目录 scratch电脑开关机 一、题目要求 编程实现 二、案例分析 1、角色分析

CMU/MIT/清华/Umass提出生成式机器人智能体RoboGen

文章目录 导读1. Introduction2. 论文地址3. 项目主页4. 开源地址5. RoboGen Pipeline6. Experimental Results作者介绍Reference 导读 CMU/MIT/清华/Umass提出的全球首个生成式机器人智能体RoboGen,可以无限生成数据,让机器人7*24小时永不停歇地训练。…

STM32笔记-AD模数转换

目录 一、ADC介绍 二、ADC主要特征 三、ADC框图 1. ​​​​ 外部触发转换 ​ 2. 转换模式 3. 输入通道 4. 逻辑框图 四、校准 五、数据对齐 六、AD转换步骤 七、AD_Init(单通道AD转换)初始化函数配置 一、ADC介绍 1. 12位ADC是一种逐次逼近型模拟数字转换器。它有多达…

基于SSM的购物商城网站的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

HttpClient基本使用

十二、HttpClient 12.1 介绍 HttpClient是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。 HttpClient作用: 发送HTTP请求接收响应数据 …

算法:Java构建二叉树并递归实现二叉树的前序、中序、后序遍历

先自定义一下二叉树的类: // Definition for a binary tree node. public class TreeNode {int val;TreeNode left;TreeNode right;TreeNode() {}TreeNode(int val) { this.val val; }TreeNode(int val, TreeNode left, TreeNode right) {this.val val;this.left…

Ubuntu20.04下安装Redis环境

apt安装Redis环境 更新apt-get安装镜像源 安装Redis sudo apt-get install -y redis-server设置密码 # 编辑Redis的配置文件redis.conf,如果不知道配置文件的位置可以执行whereis redis.conf查看 sudo vim /etc/redis/redis.conf取消文件中的requirepass注释&am…

Linux之管道

管道 管道什么是管道匿名管道readpipe 应用有名管道mkfifoopenunlinkcopy on write 管道 什么是管道 管道是Linux中最古老的进程间通信的方式 我们把一个进程连接到另一个进程的一个数据流称作 一个管道 注意:管道只能单向通信 你可以把他看做是一种特殊的文件&…

Prometheus+Node_exporter+Grafana实现监控主机

PrometheusNode_exporterGrafana实现监控主机 如果没有安装相关的配置,首先要进行安装配置,环境是基于Linux,虚拟机的相关环境配置在文末给出,现在先讲解PrometheusNode_exporterGrafana的安装和使用。 一.Prometheus安装 虽然…

详解RSA加密算法 | Java模拟实现RSA算法

目录 一.什么是RSA算法 二.RSA算法的算法原理 算法描述 三.RSA算法安全性 四.RSA算法的速度 五.用java实现RSA算法 一.什么是RSA算法 1976年,Diffie和Hellman在文章“密码学新方向(New Direction in Cryptography)”中首次提出了公开…