常用网络接口自动化测试框架

(一)GUI界面测试工具:jmeter

1、添加线程组

clip_image002

2、添加http请求

clip_image004

3、为线程组添加察看结果树

clip_image006

4、写入接口参数并运行

clip_image008

5、在查看结果树窗口查看结果

clip_image010

6、多组数据可增加CSVDataSetConfig(添加.csv格式的文件,并在参数值里以${x}格式写入)

clip_image012

clip_image014

此时变量值填写${变量名},上图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类型的USI
 5   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类型请求对象,并传入uri
 5   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     @Test
 4     @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最新版)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第五讲观测值中与卫星、接收机有关的误差 第六讲观测值中与信号传播路径有关的误差以及电离层、对流层相关模型 | GNSS(RTK)课程学习笔记day3

说明&#xff1a;以下笔记来自计算机视觉life吴桐老师课程&#xff1a;从零掌握GNSS、RTK定位[链接]&#xff0c;从零掌握RTKLIB[链接]。非原创&#xff01;且笔记仅供自身与大家学习使用&#xff0c;无利益目的。 第五讲 观测值中与卫星、接收机有关的误差 卫星轨道误差 由卫…

如何有效压缩图片大小?保持质量的同时减小文件大小

图片体积过大&#xff0c;不仅仅会导致我们电脑或者手机内存不足&#xff0c;在一些网络平台上传的时候&#xff0c;也会因为限制上传失败&#xff0c;为了有效减少文件所占用的存储空间和上传&#xff0c;我们可以先利用图片压缩功能去把图片缩小kb&#xff0c;那么具体是怎么…

Python Pandas 多重索引DataFrame数据(第19讲)

Python Pandas 多重索引DataFrame数据(第19讲)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ�…

【powershell】Windows环境powershell 运维之历史文件压缩清理

&#x1f984; 个人主页——&#x1f390;开着拖拉机回家_Linux,大数据运维-CSDN博客 &#x1f390;✨&#x1f341; &#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#x1f341; &#x1fa81;&#x1f341;&#x1fa81;&am…

Find My资讯|苹果Find My大升级:可添加物品数量翻倍,从16个飙升至32个!

苹果Find My是Find My iPhone&#xff08;查找我的iPhone&#xff09;和Find My Friends&#xff08;查找朋友&#xff09;的结合体&#xff0c;新系统中苹果为了追求简洁&#xff0c;于是把这两个应用整合到一块了。Find My作用于iOS13、iPadOS&#xff08;苹果为iPad定制的新…

笨爸爸工房携手洛阳科学技术馆,开启全新手工课程!

笨爸爸工房与洛阳科学技术馆达成合作&#xff0c;每周六上午9点50分在洛阳科学技术馆开设全新的手工课程。通过丰富多彩的手工课程&#xff0c;让孩子在动手实践中感受传统木艺的乐趣&#xff0c;了解中国传统文化的内涵。笨爸爸工房以木工为媒介&#xff0c;希望通过提升父亲参…

LeetCode 739每日温度 496 下一个更大元素 | 代码随想录25期训练营day58

单调栈1 LeetCode 739 每日温度 2023.12.21 题目链接代码随想录讲解[链接] vector<int> dailyTemperatures(vector<int>& temperatures) {//暴力求解&#xff0c;但会超时/*vector<int> answer(temperatures.size(), 0);for (int i 0; i < tempe…

BWS2000倾角传感器c++测试代码【2】

问题一&#xff1a;串口频率的初始化 由于本次项目之中使用的线长为40米的倾角传感器&#xff0c;需要对于其频率输出存在要求&#xff0c;如何测试其频率如下所示&#xff1a; 如上所示相应的软件&#xff0c;软件中存在一句如果设置后不保存&#xff0c;则存在传感器断电后设…

开源堡垒机JumpServer结合内网穿透实现远程访问

开源堡垒机JumpServer结合内网穿透实现远程访问 前言1. 安装Jump server2. 本地访问jump server3. 安装 cpolar内网穿透软件4. 配置Jump server公网访问地址5. 公网远程访问Jump server6. 固定Jump server公网地址 前言 JumpServer 是广受欢迎的开源堡垒机&#xff0c;是符合 …

python使用Tesseract

python使用Tesseract 一、介绍二、安装Tesseract三、使用Tesseract3.1 简单例子 一、介绍 Tesseract是一个开源的ocr工具&#xff0c;它是由C编写的&#xff0c;可以直接在Windows上运行&#xff0c;也可以用各种编程语言调用。 二、安装Tesseract Tesseract支持多个平台&am…

C#中var、object和dynamic的区别

在C#编程语言中&#xff0c;我们经常会遇到var、object和dynamic这三个关键字。它们都用于声明变量&#xff0c;但在使用方法和特性上存在一些重要的区别。本文将详细介绍这三者的差异。 目录 var关键字object关键字dynamic关键字总结 var关键字 var是C#语言中的隐式类型推断…

CentOS 7 Tomcat服务的安装

前提 安装ava https://blog.csdn.net/qq_36940806/article/details/134945175?spm1001.2014.3001.5501 1. 下载 wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.84/bin/apache-tomcat-9.0.84.tar.gzps: 可选择自己需要的版本下载安装https://mirr…

使用Python爬取GooglePlay并从复杂的自定义数据结构中实现解析

文章目录 【作者主页】&#xff1a;吴秋霖 【作者介绍】&#xff1a;Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作&#xff01; 【作者推荐】&#xff1a;对JS逆向感兴趣的朋友可以关注《爬虫JS逆向实战》&#xff0c;对分布…

Hbase的安装配置

注&#xff1a;本文默认已经完成hadoop的下载以及环境配置 1.上传zookeeper和hbase压缩包到指令路径并且解压 (理论上讲&#xff0c;hbase其实内置了zookeeper&#xff0c;我们也可以不另外下载&#xff0c;另外下载的目的在于减少组件间依赖性) cd /home mkir hbase cd /hom…

本地MinIO存储服务如何创建Buckets并实现公网访问上传文件

文章目录 前言1. 创建Buckets和Access Keys2. Linux 安装Cpolar3. 创建连接MinIO服务公网地址4. 远程调用MinIO服务小结5. 固定连接TCP公网地址6. 固定地址连接测试 前言 MinIO是一款高性能、分布式的对象存储系统&#xff0c;它可以100%的运行在标准硬件上&#xff0c;即X86等…

穿越时空的电商之旅:探索古老文化中的现代商机

随着全球化的发展&#xff0c;电商成为商业领域中的一匹黑马&#xff0c;以其便捷、高效的特性迅速改变着人们的购物方式。然而&#xff0c;电商并非仅限于当代社会&#xff0c;它也可以穿越时空&#xff0c;走进古老的文化中&#xff0c;挖掘出丰富的商机。本文将带领读者进行…

Opencv入门6(读取彩色视频并转换为对数极坐标视频)

源码如下&#xff1a; #include <opencv2/opencv.hpp> #include <iostream> int main(int argc, char* argv[]) { cv::namedWindow("Example2_11", cv::WINDOW_AUTOSIZE); cv::namedWindow("Log_Polar", cv::WINDOW_AUTOSIZE); c…

OLED主题展厅:领略新一代显示技术的无限可能

欢迎来到【OLED主题展厅】&#xff0c;这里是OLED应用的未来&#xff0c;是科技与艺术的完美结合。在这里&#xff0c;我们将带您领略新一代OLED显示屏的独特魅力&#xff0c;展示其在商显领域的最新技术和创新解决方案。 一、新一代OLED显示屏的应用案例和示范 在【OLED主题展…

《信息安全工程师教材》-蒋建春、信息安全完全参考手册-Mark Rhodes Ousley、CISSP官方学习指南第九版、ISO27002学习

文章目录 介绍关系学习顺序重复内容学习方法建议学习时间可能重合的部分更详细的学习计划 介绍 《信息安全工程师教材》- 蒋建春&#xff1a;这本教材可能是针对中国地区信息安全工程师的认证考试而编写的&#xff0c;它可能会涵盖信息安全的基本概念、技术和政策&#xff0c;特…

生成对抗网络与人工智能的完美融合:创新、艺术与未来

导言 生成对抗网络&#xff08;GAN&#xff09;作为一种深度学习框架&#xff0c;以其独特的生成能力引起广泛关注。生成对抗网络&#xff08;GAN&#xff09;与人工智能的结合不仅在科学领域引起了巨大的关注&#xff0c;也在艺术、医学等多个领域催生了令人振奋的创新。本文将…