七天搞定java接口自动化测试实战,一文搞定...

前言

无论是自动化测试还是自动化部署,撸码肯定少不了,所以下面的基于java语言的接口自动化测试,要想在业务上实现接口自动化,前提是要有一定的java基础。
如果没有java基础,也没关系。这里小编也为大家提供了一套java基础精讲视频(虽然年代有点久2017,但是讲解内容绝对干货,小编看了很多的基础视频唯有这一套讲解到位)由于视频较大,放到了某盘上,后台回复关键字【java】即可获取。进入主题

使用技术

  • Spring Boot
  • mybatis
  • testng
  • Swagger2
  • extentreports
  • httpclient(这里抽取了一些方法非常好用)
  • log4j2

项目结构

  • httpclient 抽取工具类部分方法
import org.apache.http.impl.client.HttpClientBuilder;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;import java.util.Map;/*** @author lgl* @date 2020/05/15 15:19*/
public class RestTemplateUtils {private static final RestTemplate REST_TEMPLATE;static {HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory(HttpClientBuilder.create().setMaxConnTotal(1000).setMaxConnPerRoute(100).build());httpRequestFactory.setConnectionRequestTimeout(5000);httpRequestFactory.setConnectTimeout(5000);httpRequestFactory.setReadTimeout(10000);
//        httpRequestFactory.setBufferRequestBody(false);REST_TEMPLATE = new RestTemplate(httpRequestFactory);}// ----------------------------------GET-------------------------------------------------------/*** GET请求调用方式** @param url          请求URL* @param responseType 返回对象类型* @return ResponseEntity 响应对象封装类*/public static <T> ResponseEntity<T> get(String url, Class<T> responseType) {return REST_TEMPLATE.getForEntity(url, responseType);}/*** GET请求调用方式** @param url          请求URL* @param responseType 返回对象类型* @param uriVariables URL中的变量,按顺序依次对应* @return ResponseEntity 响应对象封装类*/public static <T> ResponseEntity<T> get(String url, Class<T> responseType, Object... uriVariables) {return REST_TEMPLATE.getForEntity(url, responseType, uriVariables);}// ----------------------------------POST-------------------------------------------------------/*** POST请求调用方式** @param url          请求URL* @param responseType 返回对象类型* @return*/public static <T> ResponseEntity<T> post(String url, Class<T> responseType) {return REST_TEMPLATE.postForEntity(url, HttpEntity.EMPTY, responseType);}/*** POST请求调用方式** @param url          请求URL* @param requestBody  请求参数体* @param responseType 返回对象类型* @return ResponseEntity 响应对象封装类*/public static <T> ResponseEntity<T> post(String url, Object requestBody, Class<T> responseType) {return REST_TEMPLATE.postForEntity(url, requestBody, responseType);}/*** POST请求调用方式** @param url          请求URL* @param requestBody  请求参数体* @param responseType 返回对象类型* @param uriVariables URL中的变量,按顺序依次对应* @return ResponseEntity 响应对象封装类*/public static <T> ResponseEntity<T> post(String url, Object requestBody, Class<T> responseType, Object... uriVariables) {return REST_TEMPLATE.postForEntity(url, requestBody, responseType, uriVariables);}/*** POST请求调用方式** @param url          请求URL* @param requestBody  请求参数体* @param responseType 返回对象类型* @param uriVariables URL中的变量,与Map中的key对应* @return ResponseEntity 响应对象封装类*/public static <T> ResponseEntity<T> post(String url, Object requestBody, Class<T> responseType, Map<String, ?> uriVariables) {return REST_TEMPLATE.postForEntity(url, requestBody, responseType, uriVariables);}

实战示例

通过Swagger2调取controller层示例

  • 请求示例


image

  • 响应示例

接口测试用例通过extentreports生成测试报告

  • 执行resources下的testNG.xml生成测试用例报告
    示例测试报告如下:

通过报告可以看到用例的总数,多少通过多少失败,失败的异常打印等信息。

  • 接口的并发测试
    测试单元ConcurrentTestCase类是测试并发的示例
    根据入参参数设置并发量,测试结果如下:

简单的写了两个示例,具体的实现还需根据自己的接口文档去设计测试用例。
项目源码传送门:在文章末尾

  总结

如果你对此文有任何疑问,如果你也需要接口项目实战,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入我们,加入方式在文章的最后面

  自动化测试相关教程推荐:

2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂!!_哔哩哔哩_bilibili

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibili

测试开发相关教程推荐

2023全网最牛,字节测试开发大佬现场教学,从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili

postman/jmeter/fiddler测试工具类教程推荐

讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程,学jmeter接口测试一套教程就够了!!_哔哩哔哩_bilibili

2023自学fiddler抓包,请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程!!_哔哩哔哩_bilibili

2023全网封神,B站讲的最详细的Postman接口测试实战教学,小白都能学会_哔哩哔哩_bilibili

  总结:

 光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!

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

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

相关文章

Android自动化测试探索

前言 通常来说&#xff0c;我们开发完成产品之后&#xff0c;都是由测试组或者是我们自己点一点&#xff0c;基本上没有问题了就开始上线。但是&#xff0c;随着时间的堆叠&#xff0c;一款产品的功能也越来越多。这时&#xff0c;我们为了保证产品的质量&#xff0c;就需要在…

我整理了100道大厂算法岗面试必考题!

最近&#xff0c;很多小伙伴给我留言去面试被面试官吊打了&#xff0c;尤其是一些去面大厂的朋友&#xff0c;甚至一面都没有过...来&#xff0c;别灰心&#xff0c;我以过往经验告诉你大厂面试的通关秘诀&#xff01;对&#xff0c;就是算法&#xff01;大厂面试必考算法&…

参会邀请 - ISWC2020 | 第十九届国际语义网会议

第十九届国际语义网会议&#xff08;ISWC2020&#xff09;将于11月1日至6日远程召开。国际语义网会议是全球最重要的且最有影响力的国际学术会议&#xff0c;主要聚焦语义网&#xff0c;知识图谱&#xff0c;本体&#xff0c;链接数据等面向互联网的人工智能技术。国际语义网会…

美团配送资金安全治理之对账体系建设

前言 随着美团配送业务的飞速发展&#xff0c;单量已经达到千万级别&#xff0c;同时每天产生的资金额已经超过几千万&#xff0c;清结算系统在保证线上服务稳定可靠的前提下&#xff0c;如何系统化的保障资金安全是非常核心且重要的课题&#xff0c;配送清结算系统经过近3年的…

Githug第42关rebase_onto通关秘籍

Githug是一个用来了解、熟悉Git的一个非常好的游戏。 目前网站上收录的都是之前只有55关的解题方法&#xff0c;没有新增的rebase_onto这一关的内容。现在Githug一共有56关。现将新增的42关的解答内容更新如下&#xff1a; 第42关的题目如下: Name: rebase_onto Level: 41 D…

gcc安装不行的解决办法,需更新apt-get

上面应该更新apt-get 更新之后&#xff0c;重新安装gcc成功

LeetCode 138. 复制带随机指针的链表(哈希 / 深拷贝)

1. 题目 给定一个链表&#xff0c;每个节点包含一个额外增加的随机指针&#xff0c;该指针可以指向链表中的任何节点或空节点。 要求返回这个链表的深拷贝。 《剑指Offer》同题&#xff1a;面试题35. 复杂链表的复制 2. 解题 类似题目&#xff1a;LeetCode 1484. 克隆含随…

论文浅尝 - COLING2020 | 桥接文本和知识的多原型嵌入在少样本关系三元组抽取中的研究...

本文转载自公众号&#xff1a;浙大KG。 论文题目&#xff1a;Bridging Text and Knowledge with Multi-Prototype Embedding for Few-Shot Relational Triple Extraction本文作者&#xff1a;余海阳发表会议&#xff1a;COLING 2020论文链接&#xff1a;https://person.zju.…

惊呆!不用一张图片,却训出个图像识别SOTA?

文 &#xff5c; 橙橙子如果老板派给你一个任务&#xff0c;不使用一张图片&#xff0c;让你训练一个视觉预训练模型&#xff0c;你会不会觉得老板疯了。最近有一篇论文&#xff0c;不仅没用一张真实图片和标注&#xff0c;还训练出个媲美SOTA的效果&#xff0c;甚至超过了MoCo…

LeetCode 797. 所有可能的路径(DFS)

1. 题目 给一个有 n 个结点的有向无环图&#xff0c;找到所有从 0 到 n-1 的路径并输出&#xff08;不要求按顺序&#xff09; 二维数组的第 i 个数组中的单元都表示有向图中 i 号结点所能到达的下一些结点&#xff08;译者注&#xff1a;有向图是有方向的&#xff0c;即规定…

每天数百亿用户行为数据,美团点评怎么实现秒级转化分析?

背景 用户行为分析是数据分析中非常重要的一项内容&#xff0c;在统计活跃用户&#xff0c;分析留存和转化率&#xff0c;改进产品体验、推动用户增长等领域有重要作用。美团点评每天收集的用户行为日志达到数百亿条&#xff0c;如何在海量数据集上实现对用户行为的快速灵活分析…

EventBus1.0.1源码解析

很久没有更新过源码解析类文章&#xff0c;以下内容作为源码分析类的笔记。分析方法适用于其它源码分析。 分析工具说明 许久以来&#xff0c;阅读源代码最得力的工具就非Source Insight莫属了。然&#xff0c;后来微软出了一款轻量级但功能强大的IDE就没Source Insight什么事…

pycharm插件之SonarLint

pycharm插件之SonarLint pycharm插件之SonarLint 一、插件安装位置 1、在线安装插件 通过File—>Settings—>Plugins进行安装插件&#xff0c;然后只需要重新启动IEDA即可。 2、离线安装插件 通过 Settings > Plugins > Install Plugin from 离线安装&#x…

论文浅尝 - ICLR2020 | You Can Teach an Old Dog New Tricks!关于训练知识图谱嵌入

论文笔记整理&#xff1a;谭亦鸣&#xff0c;东南大学博士生。来源&#xff1a;ICLR2020链接&#xff1a;https://openreview.net/pdf?idBkxSmlBFvrKG embedding&#xff08;KGE&#xff09;模型的目标是学习知识图谱中实体和关系的向量表示。近年来众多的KGE方法被提出&#…

撑起百万亿参数模型想象力!英伟达发布新一代SuperPOD超算,AI算力新巅峰!

周一&#xff0c;黄教主又很淡定的在自家厨房里开完了GTC发布会。众所周知&#xff0c;NLP领域的模型一个比一个大&#xff0c;自从百亿参数的Google T5出来后&#xff0c;大部分AI研究者只能望着手里的蹩脚算力兴叹。如今动辄就是千亿、万亿参数模型&#xff0c;目前比较流行的…

每日优鲜小程序基础组件介绍

每日优鲜小程序基础组件介绍1.基础组件介绍2.基础组件的结构与作用3.基础组件的接入方法初次引入初始化更新与维护基础组件接入1.基础组件介绍 小程序基础组件基于每日优鲜主商城小程序业务实践演变而来。 基础组件的名称为&#xff1a;mini_app_base_module。 基础组件的项…

知识图谱入门 (八) 语义搜索

原文链接&#xff1a;https://zhuanlan.zhihu.com/p/39237778

Redis 高负载下的中断优化

背景 2017年年初以来&#xff0c;随着Redis产品的用户量越来越大&#xff0c;接入服务越来越多&#xff0c;再加上美团点评Memcache和Redis两套缓存融合&#xff0c;Redis服务端的总体请求量从年初最开始日访问量百亿次级别上涨到高峰时段的万亿次级别&#xff0c;给运维和架构…

LeetCode 394. 字符串解码(栈)

1. 题目 给定一个经过编码的字符串&#xff0c;返回它解码后的字符串。 编码规则为: k[encoded_string]&#xff0c;表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的&#xff1b;输入字符串中没有额外的空格&…

90TB显存!英伟达发布新一代SuperPod超算,AI算力新巅峰!

周一&#xff0c;黄教主又很淡定的在自家厨房里开完了GTC发布会众所周知&#xff0c;NLP领域的模型一个比一个大&#xff0c;自从百亿参数的Google T5出来后&#xff0c;大部分AI研究者只能望着手里的蹩脚算力兴叹。如今动辄就是千亿、万亿参数模型&#xff0c;目前比较流行的V…