怎么实现常用网络接口自动化测试框架应用?

一、RESTful(resource representational state transfer)类型接口测试

(一)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类型的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     }

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

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

相关文章

基于物理信息的神经网络(Physics-informed Neural Networks;PINNs)Part-1(简单介绍)

【摘要】 基于物理信息的神经网络&#xff08;Physics-informed Neural Networks&#xff0c;简称PINNs&#xff09;&#xff0c;是一类用于解决有监督学习任务的神经网络&#xff0c;它不仅能够像传统神经网络一样学习到训练数据样本的分布规律&#xff0c;而且能够学习到数学…

UFS 2 -UFS架构简介2

UFS 2 -UFS架构简介2 1 UFS架构简介1.1 System Boot and Enumeration1.2 UFS Interconnect (UIC) Layer1.2.1 UFS Physical Layer Signals1.2.2 MIPI UniPro1.2.3 MIPI UniPro Related Attributes 1.3 UFS Transport Protocol (UTP) Layer1.3.1 Architectural Model1.3.1.1 Cli…

图解max{X,Y}和min{X,Y}并求相关概率

图解max{X,Y}和min{X,Y}并求相关概率 对max{X,Y}或min{X,Y}进行分解再求解 P ( m a x { X , Y } ≥ c ) P [ ( X ≥ c ) ∪ ( Y ≥ c ) ] P ( m a x { X , Y } ≤ c ) P [ ( X ≤ c ) ∩ ( Y ≤ c ) ] P ( m i n { X , Y } ≥ c ) P [ ( X ≥ c ) ∩ ( Y ≥ c ) ] P ( m i…

k8s功能优势应用场景介绍(一)

一&#xff0c;K8S功能: 1、数据卷 pod中容器之间共享数据&#xff0c;可以使用数据卷 2、应用程序健康检查 容器内服务可能进程阻塞无法处理请求&#xff0c;可以设置监控检查策略保证应用健壮性 3、复制应用程序实例 控制器维护着pod副本数量&#xff0c;保证一个pod或一组同…

C++11 auto类型推导

1.类型推导 C11引入了auto 和 decltype 关键字实现类型推导&#xff0c;通过这两个关键字不仅能方便地获取复杂的类型&#xff0c;而且还能简化书写&#xff0c;提高编码效率。 auto 类型推导的语法和规则 在之前的 C 版本中&#xff0c;auto 关键字用来指明变量的存储类型…

Allure测试报告定制全攻略,优化你的Web自动化测试框架!

目录 前言&#xff1a; 1. Allure测试报告简介 2. Web自动化测试框架简介 3. 封装Web自动化框架 3.1 安装Selenium 3.2 封装Selenium 3.3 定制Allure测试报告 3.3.1 适配翻译插件 3.3.2 定制测试报告样式 4. 示例代码 5. 总结 前言&#xff1a; 随着现在Web应用的普…

SciencePub学术 | 计算机科学类重点SCIEI征稿中

SciencePub学术刊源推荐: 计算机科学类SCI&EI征稿中&#xff01;录用率高&#xff0c;自引率低&#xff0c;进展顺利。信息如下&#xff0c;录满为止&#xff1a; 一、期刊概况&#xff1a; 【期刊简介】IF&#xff1a;4.0-4.5↑&#xff0c; JCR 2区&#xff0c;中科院3区…

SpringAOP简介及实现(包含切面、切点、连接点和通知)

目录 1.什么是AOP、SpringAOP&#xff1f; 2.AOP的组成 3.SpringAOP的实现 4.切点的表达式 1.什么是AOP、SpringAOP&#xff1f; 在学习SpringAOP之前&#xff0c;我们得先了解一下什么是AOP。AOP是一种面向切面编程的思想。那什么是切面呢&#xff1f;它其实是对某一类事情…

【HR专用】Vue+SpringBoot,实现人才招聘库的开发(后端部分)

人才招聘库是企业用于储存和管理潜在候选人信息的数据库。通常情况下&#xff0c;这些候选人可能已经应聘过公司的职位&#xff0c;也可能是通过其他途径获取的&#xff0c;例如社交网络、招聘网站等。 对于一个中小公司来说&#xff0c;人力资源部绝对是一个重要部门&#xff…

测试类型(单元、集成、系统或手动测试)

测试类型(单元、集成、系统或手动测试) 单元测试 单元是系统的单个组件&#xff0c;例如类或单个方法。孤立地测试单元称为单元测试。 优点&#xff1a;速度快/易控/易写 缺点&#xff1a;缺乏现实性/无法捕获所有错误&#xff08;例如与其他组件或服务的交互&#xff09; 单元…

Arthas-JVM相关命令使用

tip&#xff1a;作为程序员一定学习编程之道&#xff0c;一定要对代码的编写有追求&#xff0c;不能实现就完事了。我们应该让自己写的代码更加优雅&#xff0c;即使这会费时费力。 开头&#xff1a; 我们先说下生产使用频率较高的有哪些&#xff1a;dashboard、heapdump、jvm…

【连续介质力学】二阶张量的图像表示

二阶张量在特定方向的投影 法向和切向分量 二阶张量T投影到 n ^ \hat n n^方向的结果是 t ⃗ ( n ^ ) T ⋅ n ^ \vec t^{(\hat n)}T \cdot \hat n t (n^)T⋅n^&#xff0c;其中 t ⃗ ( n ^ ) \vec t^{(\hat n)} t (n^)可以分解成&#xff1a; t ⃗ ( n ^ ) T ⃗ N T ⃗ S…

2023年上半年系统规划与管理师上午真题及答案解析

1.香农用概率来定量描述信息的公式如下&#xff0c;其中H(x)表示X的( )&#xff0c;Pi是( )出现第i种状态的( )。 A.信息熵 事件 概率 B.总熵 单位 概率 C.信息熵 单位 概率 D.总熵 单位 度量 2.信息传输模型中&#xff0c;( )负责信息的向外传播&#xff0c;( )负责…

VSLAM视觉里程计总结

相机模型是理解视觉里程计之前的基础。视觉里程计&#xff08;VIO&#xff09;主要分为特征法和直接法。如果说特征点法关注的是像素的位置差&#xff0c;那么&#xff0c;直接法关注的则是像素的颜色差。特征点法通常会把图像抽象成特征点的集合&#xff0c;然后去缩小特征点之…

Android 应用快捷ShortcutManager与ShortcutManagerCompat详解与实战(二)

一、介绍 之前我已通过一篇文章介绍了应用快捷的接入与Demo。如果还未看过上一篇的文章可以先了解入门。 传送门&#xff1a;Android 应用快捷(shortcut)功能的详解(一)_蜗牛、Z的博客-CSDN博客 有创建自然就会有管理&#xff0c;否则一个完美的方案不应该这么被推荐出来。如何…

Zemax Lumerical | 二维光栅出瞳扩展系统优化(下)

简介 本文提出并演示了一种以二维光栅耦出的光瞳扩展&#xff08;EPE&#xff09;系统优化和公差分析的仿真方法。 在这个工作流程中&#xff0c;我们将使用3个软件进行不同的工作 &#xff0c;以实现优化系统的大目标。首先&#xff0c;我们使用 Lumerical 构建光栅模型并使用…

数据库实验报告--安全性实验

一、 实验目的 &#xff08;1&#xff09;理解SQL Server验证用户身份的过程&#xff0c;掌握设置身份验证模式的方法。 &#xff08;2&#xff09;理解登录账号的概念&#xff0c;掌握混合认证模式下登录账号的建立与取消方法。 &#xff08;3&#xff09;掌握混合认证模式…

Centos7中mysql安装配置

前提&#xff1a;先关闭防火墙或开启tcp的3306端口 1、查看服务器上是否有现成的安装包 yum list mysql* 2、去mysql官网的yum资源库找到对应的rpm文件的下载链接 确定系统版本 cat /etc/redhat-release 到mysql官网复制对应版本的资源下载链接 MySQL :: Download MySQL Yum…

git Husky

虽然我们已经要求项目使用eslint了&#xff0c;但是不能保证组员提交代码之前都将eslint中的问题解决掉了&#xff1a; 也就是我们希望保证代码仓库中的代码都是符合eslint规范的&#xff1b; 那么我们需要在组员执行 git commit 命令的时候对其进行校验&#xff0c;如果不符合…

说说验证码功能的实现

前言 大家好&#xff0c;我是 god23bin&#xff0c;今天说说验证码功能的实现&#xff0c;相信大家都经常接触到验证码的&#xff0c;毕竟平时上网也能遇到各种验证码&#xff0c;需要我们输入验证码进行验证我们是人类&#xff0c;而不是机器人。 验证码有多种类型&#xff…
最新文章