CN111767221A - 接口测试方法、装置、设备以及存储介质 - Google Patents

接口测试方法、装置、设备以及存储介质 Download PDF

Info

Publication number
CN111767221A
CN111767221A CN202010598769.3A CN202010598769A CN111767221A CN 111767221 A CN111767221 A CN 111767221A CN 202010598769 A CN202010598769 A CN 202010598769A CN 111767221 A CN111767221 A CN 111767221A
Authority
CN
China
Prior art keywords
interface
signature
parameters
request
service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010598769.3A
Other languages
English (en)
Inventor
姚乾鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apollo Intelligent Connectivity Beijing Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202010598769.3A priority Critical patent/CN111767221A/zh
Publication of CN111767221A publication Critical patent/CN111767221A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了接口测试方法、装置、设备以及存储介质,涉及互联网、接口测试等领域,可用于云平台或云服务。具体实现方案为:获取需要测试的接口的业务参数;执行该接口对应的签名生成脚本,按照该签名生成脚本中的加密算法对该接口的业务参数进行计算,生成该接口的签名参数;根据该接口的业务参数和该接口的签名参数,生成测试请求。在本申请实施例中,通过执行接口对应的签名生成脚本,可以按照脚本中的加密算法自动对业务参数进行加密计算,生成该接口的签名参数,然后利用该签名参数与业务参数生成测试请求,能够提高接口测试效率,安全性高。

Description

接口测试方法、装置、设备以及存储介质
技术领域
本申请涉及计算机领域,尤其涉及互联网、接口测试等领域。
背景技术
API(Application Programming Interface,应用程序接口)的接口签名认证的过程主要包括:服务端通常会给合法的客户端分配一个密钥(A),客户端在请求数据时需要用密钥对请求参数进行加密,得到的加密结果通常叫做签名(S)。服务端接收到请求后会使用相同的秘钥(A)加密数据,如果得到相同的签名(S),就认为客户端是合法的,因此使用接口签名可以有效的验证客户端的合法性。
由于请求参数改变会导致签名改变,测试需要签名认证的接口主要有以下方法:
1)注释判断签名的代码:这样可以绕过判断签名的逻辑,不会对签名参数的合法性做判断;该方式对于有些环境不可用,也存在安全隐患。
2)手动计算签名值:开发者手动调用程序计算签名,并把签名作为参数之一发起请求;这种方式需要人工干预的方式计算签名值,操作复杂,人工成本高。
发明内容
本申请提供了一种接口测试方法、装置、设备以及存储介质。
根据本申请的一方面,提供了一种接口测试方法,包括:
获取需要测试的接口的业务参数;
执行该接口对应的签名生成脚本,按照该签名生成脚本中的加密算法对该接口的业务参数进行计算,生成该接口的签名参数;
根据该接口的业务参数和该接口的签名参数,生成测试请求。
根据本申请的另一方面,提供了一种接口测试装置,包括:
获取模块,用于获取需要测试的接口的业务参数;
签名模块,用于执行该接口对应的签名生成脚本,按照该签名生成脚本中的加密算法对该接口的业务参数进行计算,生成该接口的签名参数;
请求模块,用于根据该接口的业务参数和该接口的签名参数,生成测试请求。
根据本申请的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行接口测试方法。
根据本申请的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,该计算机指令用于使该计算机执行接口测试方法。
根据本申请实施例,通过执行接口对应的签名生成脚本,可以按照脚本中的加密算法自动对业务参数进行加密计算,生成该接口的签名参数,然后利用该签名参数与业务参数生成测试请求,能够提高接口测试效率,安全性高。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请一实施例的接口测试方法的流程图;
图2是HTTP协议基本流程;
图3是根据本申请另一实施例的接口测试方法的流程图;
图4是根据本申请另一实施例的接口测试方法的流程图;
图5是用户发送请求的URL和参数的示意图;
图6是使用Postman自动计算签名并发起HTTP请求的流程图;
图7是根据本申请一实施例的接口测试装置的框图;
图8是根据本申请另一实施例的接口测试装置的框图;
图9是根据本申请实施例的接口测试方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本申请一实施例的接口测试方法的流程图,该方法可以包括:
S101、获取需要测试的接口的业务参数;
S102、执行该接口对应的签名生成脚本,按照该签名生成脚本中的加密算法对该接口的业务参数进行计算,生成该接口的签名参数;
S103、根据该接口的业务参数和该接口的签名参数,生成测试请求。
在一种可能的实施方式中,测试请求可以为HTTP请求。示例性地,可以利用接口测试工具例如Postman来调试或测试接口。Postman是一个功能强大的支持用户发送HTTP请求的软件,通常用于进行HTTP API接口的测试与联调。开发者可以在Postman上填写需要测试的API地址、参数、Header(头)等信息。Postman可以将这些信息封装成HTTP请求头进行请求,并返回请求结果。使用Postman调试或测试接口,可以快速验证接口的可用性或定位出问题。
在一种可能的实施方式中,需要测试的接口为API(Application ProgrammingInterface,应用程序接口)。如图2所示,浏览器和移动端APP(Application,应用程序)通常是通过API从服务端获取数据的,并最终格式化展现给用户的。例如,浏览器通过API向服务端发送HTTP请求-A,接收服务端返回的HTTP响应-A。例如,移动端APP通过API向服务端发送HTTP请求-B,接收服务端返回的HTTP响应-B。如果通过APP进行聊天、购物、支付,数据会通过API传输到服务端,因此通过API传输数据的安全性和身份确认至关重要。保证API的数据安全可以通过多方面共同保障,比如使用HTTPS协议、使用接口签名认证等多种方式。采用本申请实施例的接口测试方法可以完成接口签名认证。
接口的业务参数可以包括与该接口的业务相关的参数。例如,调用提交用户信息接口,参数可以包括:访问者的用户名、年龄、性别、身高、国籍等。再如,调用查询天气服务接口,参数可以包括:经度(longitude)、纬度(latitude)、城市名(city)、日期(date)等。
每次访问该API的业务参数也可能发生变化。在对API进行测试阶段,可以利用Postman等工具输入若干不同的业务参数进行测试。由于每一次发起HTTP请求都需要携带签名参数(S),但是签名参数(S)不是用户填写的固定参数,而是通过复杂的加密计算得来的。因此,需要额外计算签名,并把签名参数(S)再填到请求中去,之后才能发起HTTP请求,验证接口。为了方便快捷得到并填充签名参数(S),可以根据需要测试的接口所支持的加密算法,预先编写该接口对应的签名生成脚本。在Postman中输入业务参数后,如果用户点击发起请求,可以先执行该接口对应的签名生成脚本,计算并填充签名参数,再发起HTTP请求。
在本申请实施例中,通过执行接口对应的签名生成脚本,可以按照脚本中的加密算法自动对业务参数进行加密计算,生成该接口的签名参数,然后利用该签名参数与业务参数生成测试请求,能够提高接口测试效率,安全性高。由于不需要人工干预的方式计算签名值,操作简单,可以降低人工成本。由于也不需要注释判断签名的代码,不仅能够在测试和开发环境使用,还可以在线上生产环境使用,由于不需要直接在生产环境修改或注释代码,因此不存在安全隐患,安全性高,本实施例可用于云平台或云服务场景。
图3是根据本申请另一实施例的接口测试方法的流程图。该实施例的接口测试方法可以包括上述实施例的各步骤。在本实施例中,该接口测试方法还包括:
S201、向服务端发送该测试请求;
S202、接收该服务端返回的根据该加密算法对该业务参数进行计算后与该签名参数进行比较得到的测试结果。
在一种可能的实施方式中,该接口为应用程序接口,该接口测试方法还包括:获取该应用程序接口的URL(Uniform Resource Locator,统一资源定位符)地址。
在本实施例中,测试终端通过接口的URL地址,可以找到接口的服务端,向该接口的服务端发送测试请求。服务端收到该测试请求后,解析得到该接口的业务参数和签名参数。以对称加密为例,请求端和服务端执行加密算法所用的秘钥可以相同。服务端可以按照与签名生成脚本中的加密算法对业务参数进行加密计算。如果计算结果与解析的签名参数相同,表示测试成功。服务端可以向测试终端返回成功的测试结果,接口测试效率高,速度快。
图4是根据本申请另一实施例的接口测试方法的流程图。该实施例的接口测试方法可以包括上述实施例的各步骤。在本实施例中,在S102中,执行接口对应的签名生成脚本后,根据该接口的业务参数生成该接口的签名,包括:
S1021、响应于初始请求,获取当前的时间戳;
S1022、根据该业务参数和该时间戳执行该签名生成脚本所包括的加密算法,计算得到该接口的签名参数。
在本实施例中,时间戳也可以看作一种随时间变化的业务参数。时间戳能够体现发起初始请求的时刻。在不同时刻发起初始请求,即使该初始请求中的其他业务参数相同,由于时间戳不同,执行签名生成脚本计算的签名参数也可能不同。此外,如果发起的初始请求中的任何业务参数发生变化,都可能导致执行签名生成脚本计算的签名参数发生变化。因此,可以随着请求时刻的不同自动计算签名参数,提高接口测试效率。
在一种可能的实施方式中,在S103中,根据该接口的业务参数和该接口的签名参数,生成测试请求,包括:
S1031、将该签名参数赋值给该初始请求中的签名变量,并将该时间戳赋值给该初始请求中的时间戳变量,得到该测试请求。
有一些场景中,测试请求中需要带有发起初始请求时的时间参数。这种情况下,可以响应于用户发起初始请求的操作,获取当前的时间戳。然后按照签名生成脚本中的加密算法对业务参数和时间戳一起进行计算,得到该接口的签名参数。然后将时间戳和签名参数填充至初始请求中的相应位置。例如,将时间戳赋值给初始请求中的时间戳变量,将签名参数赋值给初始请求中的签名变量,得到测试请求。然后,可以将赋值了时间戳和签名参数的测试请求发送到服务端进行处理。自动计算签名后还可以自动填充请求中相应的变量,无需用户干预,从而可以更加方便快速的发起接口测试。
在一种可能的实施方式中,该方法还包括:
S100、根据不同接口所采用的加密算法,预先生成各该接口对应的签名生成脚本。不同网站可能支持不同的加密算法,并且,不同网站具有不同的接口,因此,不同接口可能采用不同的加密算法。可以按照接口采用的特定的加密算法编写对应的签名生成脚本,签名生成脚本中的代码逻辑可以与加密算法的处理逻辑一致。例如,加密算法可以包括但不限于MD5(Message-Digest Algorithm,信息摘要算法)、SHA-1(Secure Hash Algorithm 1,安全散列算法1)等。这样,有利于适用对各种类型的接口进行测试,适用范围广。
在测试设备中,收到初始请求后,可以根据接口的地址或标识查找其对应的签名生成脚本,执行该签名生成脚本以生成该接口的签名参数。如果时间戳不同,在不同时刻,执行同一接口的签名生成脚本生成的签名参数可能不同。
在一种应用示例中,提供一种基于Postman的自动计算接口签名的方法。用户在Postman的Pre-request Script(预请求脚本)模块中编写一次计算签名的脚本(简称签名生成脚本),可在Postman请求时自动计算并填充参数。这样,可以极大提升接口测试效率。
如图5所示,在使用Postman以及类似软件时,首先,可以设置请求接口的URL,参见图5的框21中的内容,用于声明需要请求的服务地址。接下来,可以设置请求的参数表示。参见图5的框22中的各种参数,用于声明请求某个业务需要携带的数据信息,其中签名参数作为用户请求参数的一部分,通常可以根据用户业务请求参数(或称为业务参数)加密得到。如图5所示,例如框22中包括的参数可以用键值对(Key-Value)。框22中可以包括一些允许用户输入的业务参数中。例如,第一参数的键(Key)为用户名(user_name),对应的值(Value)为xxxx;第二参数的键(Key)为用户年龄(user_age),对应的值(Value)为59(单位为岁);第三参数的键(Key)为用户性别(user_gender),对应的值(Value)为男(male);第四参数的键(Key)用户身高(user_height),对应的值(Value)为183(单位为厘米);第五参数的键(Key)为用户国籍(user_country),对应的值(Value)为美国(America)。这些允许用户输入的业务参数,可以根据用户需要测试的具体内容改变。输入之后,则如果用户不修改,不会自动改变。在框22中还可以包括两个变量。时间戳变量(req_time)和签名变量(sigh),这两个变量无需用户干预可以自动改变。例如,时间戳变量的参数值可以在用户发起请求例如点击“发送(send)”控件23时获取当前时刻。签名变量的参数值,则可以执行签名生成脚本对输入的业务参数和获取的时间戳的值进行加密计算得到。
上述业务的类型和参数仅是示例而非限制,具体可以根据实际应用场景灵活设置。
如图6所示,为使用接口测试工具Postman自动计算签名并发起HTTP请求的流程,具体包括以下步骤:
S1.用户需要明确请求的URL地址,参见图5的框21。例如,参见图6,开发人员利用Postman设置请求的方法和地址(例如需要测试的API的URL地址)。
S2.用户需要设置请求参数例如,参见图6,开发人员利用Postman设置请求参数。参见图5的框22,是需要将用户名为xxxx的用户信息提交到http://data.api.com/new_user接口。
参见图5的框22中有{{timestamp}}和{{sign}}两个特殊参数,这标明这两个参数的值不是固定的,而是来自于Postman运行过程中动态计算而赋值的。比如timestamp时间戳,如果固定写成2020-05-20 10:10:10,那在5月21号在请求时,已经不再是准确的值了。签名参数sign也是同样的道理,sign作为接口的签名值,通常是用分配给用户的秘钥加密其他参数得来的,因此只要任何一个参数(比如时间戳、用户名、年龄等)发生变化,sign的值都得重新计算。本申请实施例提供了一种自动计算签名的方法,用户只用一次编写脚本,当业务参数发生变化时Postman可以自动计算好sign签名值。因此,可以将req_time称为时间戳变量,将sign称为签名变量。
S4.S3.编写Postman的Pre-req脚本(Pre-request Script,预请求脚本)。该脚本可以包括该接口所需的加密算法,能够用于自动计算sign的签名值。自动计算sign签名值是由用户编写的脚本自动计算的,所以需要按照sign的计算规则编写脚本,并配置在Postman的Pre-request Script模块中,不同服务的sign签名计算方式不同,服务方通常具有相应的文档说明。该编写脚本的步骤可以提前进行,例如在S1之前,预先编写该脚本。
一种示例性的用于自动计算签名的脚本如下:
Figure BDA0002558427400000081
Figure BDA0002558427400000091
上述脚本的最后两行用于设置Postman请求变量,对应的图5中框22最后两行的特殊参数:时间戳和签名。
S4.当用户发起请求时,Postman会运行用户脚本,在Pre-request Script(预请求脚本)模块中执行脚本逻辑,利用该脚本中的加密算法对业务参数(可以包括时间戳)进行加密计算,得到签名值,设置环境变量(包括签名)。
S5.Pre-request Script模块将计算结果返回到Postman,Postman会进行变量填充,将计算得到的值赋值给这两个特殊变量,这样sign每次都是动态且自动计算得来的。
S6.Postman组合请求的数据格式。
S7.Postman向服务端发起数据请求,该数据请求是经过填充、组合数据格式之后的接口测试请求。
S8.服务端对收到的请求进行逻辑处理。例如,服务提供的方在收到用户的请求中的参数后,会使用与脚本中算法逻辑相同的算法计算sign签名值。比较收到的签名值和计算的签名值是否一致。
S9.如果一致,表示签名验证通过,在签名验证通过并且处理完业务之后,将处理结果返回给用户。例如服务端向Postman返回请求结果,Postman可以将请求结果展示给开发人员。
本申请实施例的接口测试方法,在接口开发与测试流程中可以发挥重要的作用,开发人员只需要编写一次用于进行签名(sign)计算的脚本(或称为签名生成脚本),就可以解决接口签名计算的繁琐过程,实现自动生成签名,更不需要在代码中注释签名判断的代码片段,让开发人员能够专注于业务相关的参数与功能。
图7是根据本申请一实施例的接口测试装置的框图。该装置可以包括:
获取模块41,用于获取需要测试的接口的业务参数;
签名模块42,用于执行该接口对应的签名生成脚本,按照该签名生成脚本中的加密算法对该接口的业务参数进行计算,生成该接口的签名参数;
请求模块43,用于根据该接口的业务参数和该接口的签名参数,生成测试请求。
在一种可能的实施方式中,如图8所示,该装置还包括:
发送模块51,用于向服务端发送该测试请求;
接收模块52,用于接收该服务端返回的根据该加密算法对该业务参数进行计算后与该签名参数进行比较得到的测试结果。
在一种可能的实施方式中,该接口为应用程序接口,该装置还包括:
地址模块53,用于获取该应用程序接口的统一资源定位符URL地址。
在一种可能的实施方式中,该签名模块42包括:
时间戳子模块421,用于响应于初始请求,获取当前的时间戳;
计算子模块422,用于根据该业务参数和该时间戳执行该签名生成脚本所包括的加密算法,计算得到该接口的签名参数。
在一种可能的实施方式中,该请求模块43具体用于将该签名参数赋值给该初始请求中的签名变量,并将该时间戳赋值给该初始请求中的时间戳变量,得到该测试请求。
在一种可能的实施方式中,该装置还包括:
脚本模块54,用于根据不同接口所采用的加密算法,预先生成各该接口对应的签名生成脚本。
本申请实施例各装置中的各模块的功能可以参见上述方法中的对应描述,在此不再赘述。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图9所示,是根据本申请实施例的接口测试方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图9所示,该电子设备包括:一个或多个处理器901、存储器902,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个处理器901为例。
存储器902即为本申请所提供的非瞬时计算机可读存储介质。其中,该存储器存储有可由至少一个处理器执行的指令,以使该至少一个处理器执行本申请所提供的接口测试方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的接口测试方法。
存储器902作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的接口测试方法对应的程序指令/模块(例如,附图7所示的获取模块41、签名模块42和请求模块43)。处理器901通过运行存储在存储器902中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的接口测试方法。
存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据接口测试方法的电子设备的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至接口测试方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
接口测试方法的电子设备还可以包括:输入装置903和输出装置904。处理器901、存储器902、输入装置903和输出装置904可以通过总线或者其他方式连接,图9中以通过总线连接为例。
输入装置903可接收输入的数字或字符信息,以及产生与接口测试方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置904可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与虚拟专用服务器(VPS)服务中,存在的管理难度大,业务扩展性弱的缺陷。
在本申请实施例中,通过执行接口对应的签名生成脚本,可以按照脚本中的加密算法自动对业务参数进行加密计算,生成该接口的签名参数,然后利用该签名参数与业务参数生成测试请求,能够提高接口测试效率,安全性高。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (14)

1.一种接口测试方法,包括:
获取需要测试的接口的业务参数;
执行所述接口对应的签名生成脚本,按照所述签名生成脚本中的加密算法对所述接口的业务参数进行计算,生成所述接口的签名参数;
根据所述接口的业务参数和所述接口的签名参数,生成测试请求。
2.根据权利要求1所述的方法,其特征在于,还包括:
向服务端发送所述测试请求;
接收所述服务端返回的根据所述加密算法对所述业务参数进行计算后与所述签名参数进行比较得到的测试结果。
3.根据权利要求1所述的方法,其特征在于,所述接口为应用程序接口,所述方法还包括:
获取所述应用程序接口的统一资源定位符URL地址。
4.根据权利要求1所述的方法,其特征在于,根据所述接口的业务参数生成所述接口的签名参数,包括:
响应于初始请求,获取当前的时间戳;
根据所述业务参数和所述时间戳执行所述签名生成脚本所包括的加密算法,计算得到所述接口的签名参数。
5.根据权利要求4所述的方法,其特征在于,根据所述接口的业务参数和所述接口的签名参数,生成测试请求,包括:
将所述签名参数赋值给所述初始请求中的签名变量,并将所述时间戳赋值给所述初始请求中的时间戳变量,得到所述测试请求。
6.根据权利要求1至5中任一项所述的方法,其特征在于,还包括:
根据不同接口所采用的加密算法,预先生成各所述接口对应的签名生成脚本。
7.一种接口测试装置,包括:
获取模块,用于获取需要测试的接口的业务参数;
签名模块,用于执行所述接口对应的签名生成脚本,按照所述签名生成脚本中的加密算法对所述接口的业务参数进行计算,生成所述接口的签名参数;
请求模块,用于根据所述接口的业务参数和所述接口的签名参数,生成测试请求。
8.根据权利要求7所述的装置,其特征在于,还包括:
发送模块,用于向服务端发送所述测试请求;
接收模块,用于接收所述服务端返回的根据所述加密算法对所述业务参数进行计算后与所述签名参数进行比较得到的测试结果。
9.根据权利要求7所述的装置,其特征在于,所述接口为应用程序接口,所述装置还包括:
地址模块,用于获取所述应用程序接口的统一资源定位符URL地址。
10.根据权利要求7所述的装置,其特征在于,所述签名模块包括:
时间戳子模块,用于响应于初始请求,获取当前的时间戳;
计算子模块,用于根据所述业务参数和所述时间戳执行所述签名生成脚本所包括的加密算法,计算得到所述接口的签名参数。
11.根据权利要求10所述的装置,其特征在于,所述请求模块具体用于将所述签名参数赋值给所述初始请求中的签名变量,并将所述时间戳赋值给所述初始请求中的时间戳变量,得到所述测试请求。
12.根据权利要求7至11中任一项所述的装置,其特征在于,还包括:
脚本模块,用于根据不同接口所采用的加密算法,预先生成各所述接口对应的签名生成脚本。
13.一种电子设备,其中,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1-6中任一项所述的方法。
CN202010598769.3A 2020-06-28 2020-06-28 接口测试方法、装置、设备以及存储介质 Pending CN111767221A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010598769.3A CN111767221A (zh) 2020-06-28 2020-06-28 接口测试方法、装置、设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010598769.3A CN111767221A (zh) 2020-06-28 2020-06-28 接口测试方法、装置、设备以及存储介质

Publications (1)

Publication Number Publication Date
CN111767221A true CN111767221A (zh) 2020-10-13

Family

ID=72722620

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010598769.3A Pending CN111767221A (zh) 2020-06-28 2020-06-28 接口测试方法、装置、设备以及存储介质

Country Status (1)

Country Link
CN (1) CN111767221A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114721969A (zh) * 2022-06-07 2022-07-08 广州易方信息科技股份有限公司 接口自动化测试数据和测试代码分离的方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104935568A (zh) * 2015-04-20 2015-09-23 成都康赛信息技术有限公司 一种面向云平台接口鉴权签名方法
CN107154853A (zh) * 2017-04-22 2017-09-12 深圳市金立通信设备有限公司 一种签名验证方法、终端及系统
CN108512666A (zh) * 2018-04-08 2018-09-07 苏州犀牛网络科技有限公司 Api请求的加密方法、数据交互方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104935568A (zh) * 2015-04-20 2015-09-23 成都康赛信息技术有限公司 一种面向云平台接口鉴权签名方法
CN107154853A (zh) * 2017-04-22 2017-09-12 深圳市金立通信设备有限公司 一种签名验证方法、终端及系统
CN108512666A (zh) * 2018-04-08 2018-09-07 苏州犀牛网络科技有限公司 Api请求的加密方法、数据交互方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
花花牛: "postman发送HTTP请求自动生成MD5/SHA1签名", pages 1 - 3, Retrieved from the Internet <URL:https://www.cnblogs.com/huahua035/p/9645202.html> *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114721969A (zh) * 2022-06-07 2022-07-08 广州易方信息科技股份有限公司 接口自动化测试数据和测试代码分离的方法及装置

Similar Documents

Publication Publication Date Title
US10009335B2 (en) Global unified session identifier across multiple data centers
US10574644B2 (en) Stateful session manager
US9525679B2 (en) Sending session tokens through passive clients
US9887990B2 (en) Protection of application passwords using a secure proxy
US10333784B2 (en) Cloud system order and configuration using customized templates
US20220182278A1 (en) Systems and methods to determine root cause of connection failures
CN111274591A (zh) 一种访问Kubernetes集群的方法、装置、电子设备和介质
US20150088978A1 (en) Cookie based session management
CN111245825A (zh) 小程序登录方法、服务器和电子设备
CN111310204B (zh) 数据处理的方法及装置
JP2022054386A (ja) モデル連合訓練方法、装置、電子機器、記憶媒体並びにコンピュータプログラム
US10785211B2 (en) Authorization and authentication for recurring workflows
US11843674B2 (en) Virtual workspace experience visualization and optimization
CN112035282B (zh) 应用于云平台的api管理方法、装置、设备以及存储介质
CN110247917B (zh) 用于认证身份的方法和装置
CN112527252A (zh) 小程序管理方法及装置、小程序平台、电子设备、介质
JP7506266B2 (ja) ブロックチェーンに基づくデータ処理方法および装置
CN114363088B (zh) 用于请求数据的方法和装置
CN112069490A (zh) 一种提供小程序能力的方法、装置、电子设备及存储介质
CN112565225B (zh) 用于数据发送的方法、装置、电子设备及可读存储介质
CN112000880B (zh) 推送消息的处理方法、装置、电子设备及可读存储介质
US11240185B2 (en) Managing and executing serverless function command sets in a messaging service
CN110968856B (zh) 登录方法、装置、电子设备和存储介质
EP3276914A1 (en) Data sharing method and device for virtual desktop
CN111767221A (zh) 接口测试方法、装置、设备以及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20211011

Address after: 100176 101, floor 1, building 1, yard 7, Ruihe West 2nd Road, economic and Technological Development Zone, Daxing District, Beijing

Applicant after: Apollo Intelligent Connectivity (Beijing) Technology Co., Ltd.

Address before: 2 / F, baidu building, No. 10, Shangdi 10th Street, Haidian District, Beijing 100085

Applicant before: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right