常用网络接口自动化测试框架
(一)GUI界面测试工具:jmeter
1、添加线程组
2、添加http请求
3、为线程组添加察看结果树
4、写入接口参数并运行
5、在查看结果树窗口查看结果
6、多组数据可增加CSVDataSetConfig(添加.csv格式的文件,并在参数值里以${x}格式写入)
此时变量值填写${变量名},上图x,y表示每次从文件里读取两个参数,分别命名为x,y
(二)JAVA语言脚本测试(HttpClient)
1、GET请求接口测试
1 public void TestGet throws URISyntaxException, ClientProtocolException, IOException{2 //1、创建一个客户端对象3 CloseableHttpClient client=HttpClients.createDefault();4 //2、使用URIBuilder()来生成一个get类型的USI5 URI uri=new URIBuilder().setScheme("http")6 .setPort(8080)7 .setHost("localhost")8 .setPath("/test1334/Calc")9 .setParameter("a", "2")
10 .setParameter("b", "3").build();
11 //3、新建一个httpget类型请求对象,并将uri传入请求
12 HttpGet get=new HttpGet(uri);
13 //4、新建响应对象,用于接收客户端执行get结果
14 CloseableHttpResponse response=client.execute(get);
15 //5.从响应对象中提取实际结果,与预期结果进行比对
16 if(response.getStatusLine().getStatusCode()==200){
17 System.out.println(EntityUtils.toString(response.getEntity()));
18 }
19 }
2、POST请求接口测试
样例(测一个输入两个参数求和的接口):
1 public void TestPOST () throws ClientProtocolException, IOException{2 //1.新建一个客户端对象3 CloseableHttpClient client=HttpClients.createDefault();4 //2.新建post类型请求对象,并传入uri5 HttpPost post = new HttpPost("http://172.31.6.155:8080/test1334/Calc");6 //3.使用NameValuePair对参数进行打包7 List<NameValuePair> list=new ArrayList<NameValuePair>();8 list.add(new BasicNameValuePair("a","1"));9 list.add(new BasicNameValuePair("b","2"));
10 //4.对打包好的参数,使用UrlEncodedFormEntity工具类生成实体类型数据
11 //Consts.UTF_8设置服务器字符集类型
12 UrlEncodedFormEntity entity=new UrlEncodedFormEntity(list,Consts.UTF_8);
13 //5.将含有请求参数的实体对象放入到post请求对象里
14 post.setEntity(entity);
15 //6.新建一个响应对象接收客户端执行post请求的结果
16 CloseableHttpResponse response=client.execute(post);
17 //7.从响应对象中提取实际结果,与预期结果进行比对
18 if(response.getStatusLine().getStatusCode()==200){
19 System.out.println(EntityUtils.toString(response.getEntity()));
20 }
21 }
3、自动化框架
1 @RunWith(Feeder.class)2 public class getParameter {3 @Test4 @Source("data/datas.csv") //数据源5 public void test_get(int x,int y,int expect) throws ClientProtocolException, URISyntaxException, IOException{//expect为预期结果,用于与实际结果进行比对6 TestRESTfultest=new TestRESTful();//TestRESTful为前边创建TestGet所属类7 int returns=test.TestGet(x, y);//此处的为修改后的TestGet,添加了参数和返回值;8 assertEquals(returns,expect); //将结果与预期进行比较9 }
10 }
二、WebService接口测试
(一)GUI界面测试工具:SoapUI
1、新建项目
2、输入WSDL地址或文件
3、修改“?”内的数据
4、开始测试
(二)JAVA语言脚本测试(HttpClient)
1、GET请求接口测试
1 public int testGet(int x, int y) throws RemoteException {2 String target = "http://172.31.6.94:8080/axis2/services/calc?wsdl";//传入地址3 //创建一个CalcStub对象4 CalcStub stub = new CalcStub(target);5 CalcStub.Add add = new CalcStub.Add();6 //传入参数7 add.setX(x);8 add.setY(y);9 AddResponse response = stub.add(add);//结果
10 int result = response.get_return();
11 return result;
12 }
2、POST请求接口测试
1 public static void testPOST(int a,int b) throws ClientProtocolException, IOException{2 //创建客户端对象3 CloseableHttpClient cli=HttpClients.createDefault();4 HttpPost po=new HttpPost("http://172.31.6.61:8080/axis2/services/MyService?wsdl");5 //将soap协议内容添加进来,即soapXML字符串6 String soapXML="<soapenv:Envelopexmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ws=\"http://ws.day3.com\">"7 +"<soapenv:Header/>"8 +"<soapenv:Body>"9 +"<ws:add>"
10 +"<ws:a>"+a+"</ws:a>"
11 +"<ws:b>"+b+"</ws:b>"
12 +"</ws:add>"
13 +"</soapenv:Body>"
14 +"</soapenv:Envelope>";
15 //将String转换成实体类型
16 StringEntity entity=new StringEntity(soapXML,Charset.forName("UTF-8"));
17 po.setEntity(entity);
18 CloseableHttpResponse re=cli.execute(po);
19 System.out.println((re.getEntity()).toString());
20 }
3、自动化框架(同RESTful的自动化测试;略)
Python接口自动化测试零基础入门到精通(2023最新版)
相关文章:

常用网络接口自动化测试框架
(一)GUI界面测试工具:jmeter 1、添加线程组 2、添加http请求 3、为线程组添加察看结果树 4、写入接口参数并运行 5、在查看结果树窗口查看结果 6、多组数据可增加CSVDataSetConfig(添加.csv格式的文件,并在参数值里以${x}格式写入) 此时变量…...
【重点】【贪心】55.跳跃游戏
题目 法1:贪心 class Solution {public boolean canJump(int[] nums) {int maxIndex nums.length - 1;int curMaxIndex 0;for (int i 0; i < nums.length; i) {if (i < curMaxIndex) {curMaxIndex Math.max(i nums[i], curMaxIndex);if (curMaxIndex &…...
灰度化、二值化、边缘检测、轮廓检测
灰度化 定义 灰度图像是只含亮度信息,不含色彩信息的图像。灰度化处理是把彩色图像转换为灰度图像的过程,是图像处理中的基本操作。OpenCV 中彩色图像使用 BGR 格式。灰度图像中用 8bit 数字 0~255 表示灰度,如:0 表…...

基于JAVA的高校大学生创业管理系统 开源项目
目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统公告模块2.2 创业项目模块2.3 创业社团模块2.4 政府政策模块2.5 创业比赛模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 系统公告表3.2.2 创业项目表3.2.3 创业社团表3.2.4 政策表 四、系统展示五、核心代码5.…...

神经网络学习小记录76——Tensorflow2设置随机种子Seed来保证训练结果唯一
神经网络学习小记录76——Tensorflow2设置随机种子Seed来保证训练结果唯一 学习前言为什么每次训练结果不同什么是随机种子训练中设置随机种子 学习前言 好多同学每次训练结果不同,最大的指标可能会差到3-4%这样,这是因为随机种子没有设定导致的&#x…...

ai学习笔记-入门
目录 一、人工智能是什么?可以做什么? 人工智能(Artificial Intelligence): 人工智能的技术发展路线: 产业发展驱动因素:数据、算力、算法 二、人工智能这个工具的使用原理入门 神经网络⭕数学基础 1.神经网络的生物表示 …...
workflow系列教程(5-1)HTTP Server
往期教程 如果觉得写的可以,请给一个点赞关注支持一下 观看之前请先看,往期的博客教程,否则这篇博客没办法看懂 workFlow c异步网络库编译教程与简介 C异步网络库workflow入门教程(1)HTTP任务 C异步网络库workflow系列教程(2)redis任务 workflow系列教程(3)Series串联任务流…...

php-使用wangeditor实现富文本(完成图片上传)-npm
官网参考连接:快速开始 | wangEditor 样式: 一、新建一个临时文件夹test1和一个文件夹wangeditor 临时文件夹test1:临时存放通过npm下载的文件文件夹wangeditor:用于存放在临时文件夹test1拷贝的css和js 二、安装 editor 在确保有…...
mysql查看数据库中所有的表的建表语句
mysql查看数据库中所有的表: SHOW TABLES; 这条命令将返回数据库中所有表的列表。 如果要查看单个表的建表语句,可以使用以下命令: SHOW CREATE TABLE table_name; 其中,"table_name"为你要查看的表的名称。 如果…...

【Axure RP9】实现登入效验及实现左侧菜单栏跳转各页面
目录 一 效验简介 1.1 校验好处 1.2 应用场景 二 登入校验 2.1 效果 2.2 实现流程 三 左边菜单栏左侧菜单栏跳转各页面 3.1 效果 3.2 实现图 一 效验简介 1.1 校验好处 提高安全性: 在传统的用户名和密码登录的基础上,引入了另一种或多种验证…...
76. 最小覆盖子串。优化官方题解!
leetcode原题如下: 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。 注意: 对于 t 中重复字符,我们寻找的子字符串中该字符数量…...
在国产GPU寒武纪MLU上快速上手Pytorch使用指南
本文旨在帮助Pytorch使用者快速上手使用寒武纪MLU。以代码块为主,文字尽可能简洁,许多部分对标NVIDIA CUDA。不正确的地方请留言更正。本文不定期更新。 文章目录 前言Cambricon PyTorch的Python包torch_mlu导入将模型加载到MLU上model.to(mlu)定义损失函…...

重生奇迹MU觉醒战士攻略
剑士连招技巧:生命之光:PK前起手式,增加血上限。 雷霆裂闪:眩晕住对手,剑士PK战士第一技能,雷霆裂闪是否使用好关系到胜负。 霹雳回旋斩:雷霆裂闪后可以选择用霹雳回旋斩跑出一定范围(因为对手…...

美颜技术详解:深入了解视频美颜SDK的工作机制
本文将深入探讨视频美颜SDK的工作机制,揭示其背后的科技奥秘和算法原理。 1.引言 视频美颜SDK作为一种集成到应用程序中的技术工具,通过先进的算法和图像处理技术,为用户提供令人印象深刻的实时美颜效果。 2.视频美颜SDK的基本工作原理 首…...

3D模型格式转换工具如何实现高性能数据转换?请看CAE系统开发实例!
客户背景 DP Technology是全球知名的CAM的供应商,在全球8个国家设有18个办事处。DP Technology提供的CAMESPRIT系统是一个用于数控编程,优化和仿真全方面的CAM系统。CAMESPRIT的客户来自多个行业,因此支持多种CAD工具和文件格式显得格外重…...

多级缓存:亿级流量的缓存方案
文章目录 一.多级缓存的引入二.JVM进程缓存三.Lua语法入门四.多级缓存1.OpenResty2.查询Tomcat3.Redis缓存预热4.查询Redis缓存5.Nginx本地缓存6.缓存同步 一.多级缓存的引入 传统缓存的问题 传统的缓存策略一般是请求到达Tomcat后,先查询Redis,如果未…...

C语言——高精度乘法
一、引子 高精度乘法相较于高精度加法和减法有更多的不同,加法和减法是一位对应一位进行操作的,而乘法是一个数的每一位对另一个数的每一位进行操作,需要的计算步骤更多。 二、核心算法 void Calculate(int num1[], int num2[], int numres…...

为什么C语言没有被C++所取代呢?
今日话题,为什么C语言没有被C所取代呢?虽然C是一个功能更强大的语言,但C语言在嵌入式领域仍然广泛使用,因为它更轻量级、更具可移植性,并且更适合在资源受限的环境中工作。这就是为什么C语言没有被C所取代的原因。如果…...
基于Spring的枚举类+策略模式设计(以实现多种第三方支付功能为例)
摘要 最近阅读《贯彻设计模式》这本书,里面使用一个更真实的项目来介绍设计模式的使用,相较于其它那些只会以披萨、厨师为例的设计模式书籍是有些进步。但这书有时候为了使用设计模式而强行朝着对应的 UML 图来设计类结构,并且对设计理念缺少…...

基于Linphone android sdk开发Android软话机
1.Linphone简介 1.1 简介 LinPhone是一个遵循GPL协议的开源网络电话或者IP语音电话(VOIP)系统,其主要如下。使用linphone,开发者可以在互联网上随意的通信,包括语音、视频、即时文本消息。linphone使用SIP协议&#…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...

无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...

现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...

【C++】纯虚函数类外可以写实现吗?
1. 答案 先说答案,可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...

VisualXML全新升级 | 新增数据库编辑功能
VisualXML是一个功能强大的网络总线设计工具,专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑(如DBC、LDF、ARXML、HEX等),并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...

sshd代码修改banner
sshd服务连接之后会收到字符串: SSH-2.0-OpenSSH_9.5 容易被hacker识别此服务为sshd服务。 是否可以通过修改此banner达到让人无法识别此服务的目的呢? 不能。因为这是写的SSH的协议中的。 也就是协议规定了banner必须这么写。 SSH- 开头,…...
Monorepo架构: Nx Cloud 扩展能力与缓存加速
借助 Nx Cloud 实现项目协同与加速构建 1 ) 缓存工作原理分析 在了解了本地缓存和远程缓存之后,我们来探究缓存是如何工作的。以计算文件的哈希串为例,若后续运行任务时文件哈希串未变,系统会直接使用对应的输出和制品文件。 2 …...