精华内容
下载资源
问答
  • 一个参数需要传递多个

    在接口测试中,实际【很少】会碰到一种情况:某一个参数需要传递多个值;第一次碰到时,手足无措,最近略有体会,就整理、分享下。

    因为是真实接口,所以图片多处有马赛克,请多理解。

    个人博客:https://blog.csdn.net/zyooooxie

    (一)Requests文档的小意外

    公司项目有个接口是可以传多个值,我就想用Requests来试试,在复习自己敲得代码笔记时,发现一点点小问题。

    在这里插入图片描述

    上图这是我学习的笔记,看到这个用例的多行注释中写的 请求是以一个元组列表来提供这些参数;

    代码中有元组列表?哪呢?

    追根溯源,看下当时学习的 Requests 的中文文档

    在这里插入图片描述

    再看下 英文文档
    在这里插入图片描述

    所以翻车了啊;

    但是中文文档的写法真的不能用吗?请接着看

    (二)Requests处理 post请求 一个参数传多个值

    下图是要分享的这个例子的接口文档;可以看到invitedUserIds这个参数是一个被邀请用户id集合,也就是说这个参数可以传多个值;【此外token、userId都是必传,得先登录才可用此接口】

    在这里插入图片描述

    先看下手机App成功创建聊天室的抓包数据【gpChatroomId=1000181】

    在这里插入图片描述

    再看用Requests如何来写这个接口的正向用例:

    第一种:参数值写做一个列表 a list of items as a value

    (a dictionary with lists as values)

    在这里插入图片描述

    看下实际运行结果:【gpChatroomId=1000182】

    在这里插入图片描述

    抓包数据【gpChatroomId=1000182】

    在这里插入图片描述

    第二种:以一个元组 来提供这些参数

    在这里插入图片描述

    实际运行结果:【gpChatroomId=1000183】

    在这里插入图片描述

    抓包数据【gpChatroomId=1000183】

    在这里插入图片描述

    第三种:以一个元组列表 来提供这些参数 a list of tuples as values

    在这里插入图片描述

    实际运行结果:【gpChatroomId=1000184】

    在这里插入图片描述

    抓包数据【gpChatroomId=1000184】

    在这里插入图片描述

    这些图,让人眼花缭乱;回归本质,来看下源码中的post()、get():

    在这里插入图片描述

    在这里插入图片描述

    关于实际传参:

    (optional) Dictionary, list of tuples, bytes, or file-like object【post】
    (optional) Dictionary, list of tuples or bytes 【get】

    所以结论呢,是推荐用list of tuples,元组列表【第三种处理方式】;

    (三)JMeter、Postman处理 post请求 一个参数传多个值

    还是这个接口,看下JMeter、Postman这两个工具是如何处理的;

    JMeter

    登录请求:

    在这里插入图片描述

    创建聊天室的请求:

    在这里插入图片描述

    响应数据:【gpChatroomId=1000188】 不仔细看 和186超级像

    在这里插入图片描述

    Postman

    登录请求:请求Body和实际响应Body

    在这里插入图片描述

    登录请求:断言和实际断言结果、全局变量的设置

    在这里插入图片描述

    创建聊天室请求:请求Body和实际响应Body

    在这里插入图片描述

    抓包数据【gpChatroomId=1000186】

    在这里插入图片描述

    交流技术 欢迎+QQ 153132336 zy
    个人博客 https://blog.csdn.net/zyooooxie

    展开全文
  • 相应的 import javax.annotation.Resource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; 方式:@Resource(name="XXXX...

    相应的包

    import javax.annotation.Resource;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Qualifier;

    方式一:@Resource(name="XXXX")

    方式二:@Autowired    @Qualifier("XXXX")

    示例如下:

    @Service("ISchoolSerice")
    public class SchoolService implements ISchoolSerice{
     
    	@Resource(name="student2")
    	private IStudentDao sd ;
    	@Autowired
    	@Qualifier("teacher")  //指定实现类
    	private ITeacherDao td;
    }


     

    展开全文
  • 的声明只能位于java源文件的第行使用import语句调用不同包中的类,格式如: import 名.类名import 名.*; //导入该下所有类eclipse中可以通过构建路径导入外部jar用eclipse creat...

    java中的包是专门用来存放类的,通常功能相同的类存放在相同的包中,在声明包时,使用package语句,如:

    package  cn.itdream.main;

    包的声明只能位于java源文件的第一行

    使用import语句调用不同包中的类,格式如:  import  包名.类名

    import  包名.*;  //导入该包下所有类

    在eclipse中可以通过构建路径导入外部jar包

    用eclipse create class 的时候 把包名带上就行了 他会自动帮你create folder的

    如 在Package 里面输入 one.two.three,  Name 里面输入 Test

    那么 created 的class  为 one.two.three.Test

    或者 先把 folder 建好  然后 create class的时候 Package 里面  点击browse  找你想要的url 就行了

    (这个应该只是其中的一种方法而已)

    展开全文
  • tomcat作为服务端程序,一直监听80端口,之前一直以为tomcat每接收到一个新的连接,都会创建一个新的socket,然后这个socket又会占用一个端口。但是事实上并不是这样的,肯定是会创建新的socket的,但是这个新创建...

    唯一能够确定一个socket连接有4点

    1. 服务器的IP
    2. 服务器的Port
    3. 客户端的IP
    4. 客户端的Port

    tomcat最多能建立多少个连接?tomcat作为服务端程序,一直在监听80端口,之前一直以为tomcat每接收到一个新的连接,都会创建一个新的socket,然后这个socket又会占用一个端口。但是事实上并不是这样的,肯定是会创建新的socket的,但是这个新创建的socket并不会占用新的端口。
    那么问题来了,客户端发送的数据,服务器是怎么区分是哪个客户端?
    关键就在于上面的4个点,标识一个socket的是上面的4个点,而不是单纯的一个本地ip和一个本地端口,所以tomcat每accpet到一个连接,都会创建一个新的socket连接,这个socket连接种包含了下面4个信息,假设现在tomcat的ip为12.1.11.11

    服务器ip:12.1.11.11
    服务器端口:80
    客户端ip:213.32.1.2
    客户端端口:80
    

    由这4个信息标识一个唯一的socket,tomcat accept到的每一个连接的服务器ip和端口都是一样的,但是客户端的ip和端口是不一样的,根据唯一标识socket的4点,系统能正确的区分。

    服务端的socket有什么特殊的?

    其实就我们创建一个新的socket来说,他是没有什么特殊的,他就是一个未连接的socket,特殊的点在于socket.listen()方法

    #include<sys/socket.h>
    int listen(int sockfd, int backlog);
    

    listen函数仅由TCP服务器调用,当socket函数创建一个套接口时,它被假设为一个主动套装口,也就是说,它是一个将调用connet发起连接的客户套接口。listen函数把一个未连接的套接口转换成一个被动套接口,指示内核应接受指向该套接口的连接请求。根据TCP状态转换图,调用listen导致套接口从CLOSED状态转换到LISTEN状态。
    注意,在java中是没有listen()函数的,因为java帮我们进行了封装,使用了ServerSocket来专门代表监听的Socket。
    运行下面这个简单的程序

    public static void main(String[] args) throws IOException, InterruptedException {
        ServerSocket serverSocket = new ServerSocket(21111);
        Thread.sleep(100000000);
    }
    

    在windows中我们就能通过netstat -ano来查看端口占用,可以发现21111正处于监听状态
    在这里插入图片描述
    我们查看Java中的ServerSocket类的构造函数
    在这里插入图片描述
    能够看到,其实这与我们的c语言中的listen()函数差不多,其也有一个backlog参数。
    为了更好的理解backlog参数,我们必须认识到内核为任何一个给定的监听套接口维护两个队列:
    1、未完成连接队列(incomplete connection queue),每个这样的SYN分节对应其中一项:已由某个客户发出并到达服务器,而服务器正在等待完成相应的TCP三路握手过程。这些套接口处于SYN_RCVD状态。
    2、已完成连接队列(completed connection queue),每个已完成TCP三路握手过程的客户对应其中一项。这些套接口处于ESTABLISHED状态。
    当来自客户的SYN到达时,TCP在未完成连接队列中创建一个新项,然后响应以三路握手的第二个分节:服务器的SYN响应,其中稍带对客户SYN的ACK(即SYN+ACK)。这一项一直保留在未完成连接队列中,直到三路握手的第三个分节(客户对服务器SYN的ACK)到达或者该项超时为止(曾经源自Berkeley的实现为这些未完成连接的项设置的超时值为75秒)。如果三路握手正常完成,该项就从未完成连接队列移到已完成连接队列的队尾。当进程调用accept时,已完成连接队列中的队头项将返回给进程,或者如果该队列为空,那么进程将被投入睡眠,直到TCP在该队列中放入一项才唤醒它。

    如果监听的线程释放掉监听用的SOCKET了,会影响之前通过这个监听SOCKET建立的TCP连接么?

    这个问题的答案是不会的,利用ServerSocket建立的连接,即使是ServerSocket关闭了,这个连接依然还是存在,因为他们之间本身就没有任何关系了

    测试代码,Server

    public static void main(String[] args) throws IOException, InterruptedException {
        ServerSocket serverSocket = new ServerSocket();
        serverSocket.bind(new InetSocketAddress(8080));
        Socket accept = serverSocket.accept();
        new Thread(() -> {
            try {
                OutputStream outputStream = accept.getOutputStream();
                OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream);
                while (true) {
                    outputStreamWriter.write(UUID.randomUUID().toString() + System.lineSeparator());
                    outputStreamWriter.flush();
                    Thread.sleep(1000);
                    System.out.println("写了一个");
                }
            } catch (IOException | InterruptedException e) {
                e.printStackTrace();
            }
        }).start();
        serverSocket.close();
        System.out.println("连接关闭");
        Thread.sleep(100000);
    }
    

    Client

    public static void main(String[] args) throws IOException, InterruptedException {
        Socket socket = new Socket();
        socket.connect(new InetSocketAddress("localhost", 8080));
        InputStream in = socket.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(in));
        String msg;
        while ((msg = reader.readLine()) != null) {
            System.out.println("读了一个");
            System.out.println(msg);
        }
        System.out.println("dsadsa");
        Thread.sleep(100000);
    }
    

    运行这两个代码我们就能发现,即使是ServerSocket关闭,依然能继续通信
    我们又利用netstat -ano命令来查看端口占用在这里插入图片描述在这里插入图片描述

    展开全文
  • 对于dubbo,有生产者和消费者两端。对于生产者端的配置,按照...消费者端是这样,也是要创建service的接口,同时调用service接口的service实例也是放在同一个包下。 同时消费者端的扫描配置是这样: 但是我觉...
  • 创建的类如下: 调试窗口如下: 错误日志如下: 这种错误原因是同一个java下,只能有一个main函数,因为main函数是程序的入口。
  • Jmeter 是款使用Java开发的,开源免费的,测试工具, 主要用来做功能测试和性能测试(压力测试/负载测试). 而且用Jmeter 来测试 Restful API, 非常好用。   如何学好Jmeter 如果你用Jmeter去对Web进行功能...
  • 接口测试工具Postman接口测试图文教程

    万次阅读 多人点赞 2018-07-11 13:10:03
    市场上有很优秀的,完善的接口测试工具,比如SoapUI,Postman等,能够高效的帮助后端开发人员独立进行接口测试。这里使用Postman接口测试工具,此处以请求方式为POST的userLogin登录接口为例。
  • 定义一个接口,并定义相应的类来实现实现接口中的方法 */ public interface Circle {//定义接口 double PI = 3.1415;// 定义常量 void setRadius(double radius);// 定义抽象方法 double area();// 定义抽象...
  • 本文主要介绍通过postman如何批量运行多个请求并对请求的响应结果进行验证。 前提条件: 1)建立名字为接口测试的请求用例集,包含2个以上的请求 2)每个请求增加test检查点脚本 方法/步骤 选中接口测试...
  • 这是我讨论区看到的一个回答,写的很好,让我明白了为什么单个服务器程序可承受最大连接数可以达到几十W 要写网络程序就必须用Socket,这是程序员都知道的。而且,面试的时候,我们也会问对方会不会Socket编程?...
  • Java之接口

    千次阅读 2015-12-11 09:26:05
    Java中两个具有创新性的特征:和接口。...尽管接口和抽象类很相似,但是接口还有其他功能:一个类可以实现多个接口。相比之下,类只能继承单个超类(抽象类或其他类)。9.1 包在前面几章中,每个示
  • 之前《亚马逊AWS学习——EC2的自定义VPC配置》这篇文章中讲述了如何...如题所示,在一个EC2实例具有多个网络接口的环境下,如果为其配置公网连接会有一个“bug”。其实也不能说是“bug”,而是AWS网络环境的限制。
  • 根据问题现状,创建好对应的代码格式,如下图: service下的接口StudentService和它的两个实现类BoyStudentImpl和GirlStudentImpl分别如下图所示: ...但是因为目前一个接口不止一个实现类,...
  • 楔子:其实我见你,是想听你说自己的...或者说,怎么使用 @MapperScan 注解多个不同路径下的 DAO 映射类? 亦或者说,@MapperScan 注解扫描接口类有哪三种设置方式? 项目技术栈升级 SpringBoot 2 + MyBatis 3,说.
  • 接口存在多个实现类时的动态调用

    千次阅读 2017-08-23 17:57:16
    接口存在多个实现类时的动态调用版权声明:本文为博主原创文章,未经博主允许不得转载。之前做过的项目有这块的需求,也参考过网上大神们的设计方式,主要整理出一下两种方式供大家参考 使用Spring特性实现接口多...
  • Java之可以new 一个接口

    万次阅读 多人点赞 2019-04-01 16:20:26
    接口只是定义了一个标准,很类可以实现这个接口,eg:List接口 List list = new ArrayList(); // 实例化的是ArrayList这个类 List list = new Vector(); // 实例化的是Vector这个类 其中:ArrayList 和 Vector ...
  • JMeter接口测试入门

    万次阅读 多人点赞 2018-07-16 16:23:08
    除了压力测试外,JMeter在接口测试方面也有广泛的应用。2、JMeter安装访问JMeter官网:https://jmeter.apache.org/download_jmeter.cgi,点击下载后解压缩,依次打开\apache-jmeter-4.0\JMeter\bi...
  • 我的上一片文章中,我本地新建了一个普通的类来编写WebService,使用终端类 Endpoint 发布这个WebService,以此来实现让其他类调用这个接口,实现接口中定义的功能。 通过普通类写一个简单的WebService并发布 ...
  • 1、打开界面建立线程组,并取一个名称2、线程组下创建一个http请求,并进行配置3、指定动态参数名字必须和上面第二步接口中${XXX}符号里面的名称保持一致4、添加一个响应断言5、添加一个全局的查看结果树6、提取参数...
  • 1,定好路径下创建空文件夹node_app mkdir node_app; 2,cd node_app  nom init(一直enter) 3,安装express npm install express --save 4,创建index.js vim index.js 5,把代码贴到index.js中 var exp
  • 本文来自网易云社区通过性能测试平台的介绍和一些培训,我们已经可以进行性能测试了,但是性能测试了除了测试执行之外,性能问题定位和分析也是至关重要的一个环节,下面我们以一个典型的例子,开始一个接口的性能...
  • 后端入门之Python实现一个简单接口编写

    万次阅读 多人点赞 2019-04-28 13:57:23
    Python实现一个简单接口编写之前需要了解一些后端开发的一些基本的知识、Flask框架和postman工具。 Flask与Django的区别 Django功能大而全,Flask只包含基本的配置 Django的一站式解决的思路,能让开发者不用...
  • SAP比较常用的几个接口方式

    千次阅读 2018-03-13 09:04:06
    1.PI - 信使中间件 (大公司选择)数据: SAP- PI-... 有接口数据日志PI系统;缺点:PI 服务器+1; PI系统配置工作; 和每外部系统都要做wsdl配置;2. RFC - 函数 (小公司 / 简单业务场景使用)SE37 函数设置成r...
  • mybatis 实体类中包含多个实体类

    千次阅读 2019-03-27 20:25:08
    比如Shop实体类中有其他的对象 那么我们通过这shop对象分别也可以...创建shopDao接口在Shop对象的mapper上面,怎么才算是与接口对应上了呢? shopDao.xml 写上这样句话就算对应上了 ,<mapper namespace...
  • 当页面有多个不同地址时此可以重定向,下图中会出现报错的就是路径问题, 创建所有httpUrl接口请求。举例后台请求地址为:192.168.11.12:80/omc/login ,第一个/omc;页面请求地址写为/omc/login,请求地址为192....
  • Java 多态多态是同一个行为具有多个不同表现形式或形态的能力。多态的优点 消除类型之间的耦合关系 可替换性 可扩充性 接口性 灵活性 简化性 多态存在的三个必要条件继承 重写 父类引用指向子类对象 比如: ...
  • 接口配置到本地代理的方法一般来说,我们会正式环境中讲接口配置到和项目路径是一个域名下的。因此,我们没必要调用接口的时候使用绝对地址,使用相对地址即可。但是开发环境的话,我们本地跑的
  • express创建api服务器( 接口

    千次阅读 2019-06-13 21:06:33
    首先,我们终端打开,用命令创建一个文件夹 $ npx express -e port // 创建一个port文件夹 如果你的npm版本不是5.2+以上,那么建议你可以先全局安装express再创建 $ npm i express-generator -g $ cnpm i express...
  • 背景:刚发一个版本有点时间去写的东西,顺道把下个版本的用到的测试脚本准备一下。先说一下大体内容吧,我司准备做一个活动来拉注册,流程是用户A分享给自己的朋友用户B,B平台注册成功、发帖并审核成功后用户A会...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,381,631
精华内容 552,652
关键字:

如何在一个包里建立多个接口