自定义接口测试返回码设置(接口测试返回码说明)

网友投稿 361 2023-01-11


本篇文章给大家谈谈自定义接口测试返回码设置,以及接口测试返回码说明对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享自定义接口测试返回码设置的知识,其中也会对接口测试返回码说明进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

怎么判断curl调用接口返回成功:响应码

背景:最近高可用测试,双机倒换后,需要统计多久倒换结束了。我的方法是通过业务来测试,客户端和服务端都能正常访问了,对外提供服务的能力肯定就提供了。

因为不知道什么时候倒换开始和结束,需要每一秒都发curl请求,然后统计每次调用接口的时间和响应结果,并根据响应结果写入文件,方便统计和分析测试结果。

我选择简单的shell脚本,上手快。Python的话需要环境上安装相应软件,请求的响应更容易处理更便于处理。本文选择shell,curl来发请求。

1) #! /bin/bash

# 指脚本使用/bin/bash来解释执行,#!是对脚本的解释器程序路径。标记为#!/bin/sh的脚本不应使用任何POSIX没有规定的特性 (如let等命令, 但#!/bin/bash可以)。

2) while循环的格式
while expression

do

command

command

```

done
或while [条件判断式]
do

程序

done

举例:计数器控制的while循环

#!/bin/bash

int=1

while [ $int<=5 ]

do

    echo $int

    let "int++"

done

3) if判断

if [ 条件判断一 ] (||) [ 条件判断二 ]; then
elif [ 条件判断三 ] (||) [ 条件判断四 ]; then

else

  执行第三段内容程式

fi

4) curl

curl -I -s --connect-timeout 5 -m 5 -w "%{http_code}" -o /dev/null  http://baidu.com
200

-I/--head 仅返回消息头部,使用HEAD请求

-s/--slient 减少输出的信息,比如进度

--connect-timeout <seconds 指定尝试连接的最大时长

-m/--max-time <seconds 指定处理的最大时长
-w "参数"  自定义curl的输出

-o/--output <file 指定输出文件名称
#!/bin/bash

#根据测试背景填写连接超时时长,单位秒

ct=5
#根据测试背景填写响应最大时长,单位秒
rm=5

#根据测试背景填写URL
uri="http://baidu.com"
i=1
while [ $i<=36000 ]
do
    echo  `date` === $i === get-baidu.log
    let i++
    resp=`curl -I -s --connect-timeout $ct -m  $rm -w "%{http_code}" -o /dev/null  $url`

      if [ $resp==200 ]; then

              echo  `date`  == $i ==$resp  get-baidu.log

      else

            echo  `date`  == $i ==$resp  get-baidu.log

            echo  `date`  == $i ==$resp  get-baidu-fail.log

fi

done

找个和待测试环境网络可达的Linux环境,修改相关信息,直接运行即可。

注意uri是get请求,如果是post需要修改curl。

如果需要token认证则根据待测系统的实现进行携带token , 修改curl命令即可。

如果需要ssl证书,则携带相应证书,修改curl命令即可。

如果是ipv6的URL,curl中带上-6 -g参数。

计算响应时长(本例子是双机倒换时长)日志查看,从 get-baidu-fail.log找到失败点,在总的日志中找到相应记录,进行计算即可。

如何做接口测试

1、可以使用postman软件进行接口测试,这里以较复杂的上传图片的接口为例进行测试,首先打开postman软件选择Post方式,输入后台接口调用地址。

2、然后填写Headers,注意这里的Headers部分不要写任何东西,如果之前是有Content-Type头信息, 那么就会上传失败。

3、接着填写Body,选择form-data,填写Key后台规定的接收文件的名称参数,格式选择为File,此时value会自动变成选择文件。

4、最后点击Send,可以发现下方返回了接口的响应,说明上传图片是成功的,这样简单的图片上传的接口测试就完成了。

接口自动化测试之Mock




Mock介绍









1.找到要替换的对象自定义接口测试返回码设置自定义接口测试返回码设置我们需要测试的是visit_ustack这个函数,那么我们需要替换掉send_request这个函数。


2.实例化Mock类得到一个mock对象,并且设置这个mock对象的行为。在成功测试中,我们设置mock对象的返回值为字符串“200”,在失败测试中,我们设置mock对象的返回值为字符串"404"。


3.使用这个mock对象替换掉我们想替换的对象。我们替换掉了client.send_request


4.写测试代码。我们调用client.visit_ustack(),并且期望它的返回值和我们预设的一样。


上面这个就是使用mock对象的基本步骤了。在上面的例子中我们替换了自己写的模块的对象,其实也可以替换标准库和第三方模块的对象,方法是一样的:先import进来,然后替换掉指定的对象就可以了。



Mockrunner用在J2EE环境中进行应用程序的模拟测试。它不仅支持Struts actions,servlets,过滤器和标签类,还包括一个JDBC和一个JMS测试框架,可以用于测试基于EJB的应用程序。


Mockrunner扩展了JUnit并模拟了必要的行为,而无需调用实际的基础结构。它不需要正在运行的应用程序服务器或数据库。此外,它不会调用web容器或Struts ActionServlet。它非常快速,使用户可以在测试的所有步骤中操纵所有涉及的类和模拟对象。它可以用于为基于J2EE的应用程序编写非常复杂的单元测试,而不会产生任何开销。Mockrunner不支持任何类型的容器内测试。


Mockrunner不会读取任何配置文件,例如web.xml或struts-config.xml。您可以使用Mockrunner API指定所有参数。因此,可以将servlet,过滤器,标签和Struts动作作为可重用组件进行测试,而不管您在一个或另一个应用程序中使用的设置如何。无法测试配置文件中的定义。如果要这样做,可以将StrutsTestCase用于基于Struts的应用程序或Cactus。


Mockrunner支持Java版本从1.3到1.6以及J2EE 1.3,J2EE 1.4和JavaEE5。尚不支持EJB 3.0。Mockrunner支持Struts版本1.1、1.2和1.3。


下载地址:Mockrunner download | SourceForge.net





最后:【可能给你带来帮助的教程】软件测试最新自学教程

接口测试用例设计

接口测试发现的典型问题:

(1)传入参数处理不当自定义接口测试返回码设置,导致程序crash自定义接口测试返回码设置

(2)类型溢出,导致数据读出和写入不一致;

(3)因对象权限未进行校验,可以访问其自定义接口测试返回码设置他用户敏感信息;

(4)状态处理不当,导致逻辑出现错乱;

(5)逻辑校验不完善,可利用漏洞获取非正当利益等。
用例设计:

1:入参类型:

数值型 :

如果参数规定自定义接口测试返回码设置了值的范围,则需要考虑等价类取值范围内、取值范围外,取值的边界,如有需要,可能会遍历取值范围内的各个值。

类型的特殊值:-1,0

数据类型的边界值:int的最小值最大值;

特殊值处理不当导致程序异常退出;

类型边界溢出

取值范围外值未返回正确的错误信息等
字符串型:

字符串型的参数,主要考虑字符串的长度和内容:

特殊值:空字符;

边界值:String的最大长度;

字符串内容可考虑类型:数字,非数字;

特殊字符。

超长字符未进行处理,导致存储、显示等异常
 数组或链表类型

参数类型为数组或链表时,用例可以考虑:

例如批量提交任务的接口submitTask(int[] taskID),参数用例设计考虑:

正常取值:1-5个权限,范围外:6个权限;

边界值:1-35的边界值,请求允许最大最小值;

特殊值:0个;

合法ID和不合法的;

重复的ID等。

可能存在的问题和风险:

0个item时程序异常退出;

重复的item处理时未去重导致结果异常等。
2:针对逻辑设计

约束条件分析

(1)数值限制:分数限制、金币限制、等级限制等等。

例如:兑换Q币活动要求积分50才可参与。

(2)状态限制:登录状态等。

例如:同步用户信息需要先登录账号。

(3)关系限制:绑定的关系,好友关系等。

例如:帮家人防骗功能只能查询绑定家人的来电信息。

(4)权限限制:管理员等。
3: 针对输出结果

接口处理正确的结果可能只有一个,但是错误异常返回结果有很多情况很多值。如果知道返回结果有很多种,就可以针对不同结果设计用例。例如提交积分任务的时候我们通常能想到的是返回正确和错误,错误可能想到:无效任务,无效登录态,但是不一定能否完全覆盖所有错误码,而接口返回定义的返回码可以设计更多用例:

覆盖返回码也是用例设计的一种思路。

常见问题和风险:

(1)错误前端处理不足,导致前端异常;

(2)错误提示处理不当,导致用户看到晦涩的错误码;

(3)错误提示不当,导致用户不知道哪里出了问题,如何解决。
4:接口超时

( 1)未进行超时处理,导致整个流程阻塞

(2)超时后又收到接口返回,导致逻辑出现错乱

python接口测试request返回json数据,自定义一个字典,怎么判读这个字典是返回数据的子集

def is_subdict(dict1, dict2):
    '''tell whether dict2 is a part of dict1
    判断字典dict2是否为dict1自定义接口测试返回码设置的子集
     is_subdict({'a': 1, 'b': 2}, {'a': 1})
    True
     is_subdict({'a': 1, 'b': 2}, {'c': 3})
    False
    '''
    d = dict(dict1, **dict2)
    return d == dict1
    
if __name__ == '__main__':
    import doctest
    doctest.testmod()

robotframework基于重定向的接口测试

在平时接口测试过程会存在一些重定向的接口(状态码为302),比如某些登录的接口需要一次甚至多次的重定向才能实现最终的登录,这样的情况下,我们就需要对这多次重定向的请求进行分析,分析这些请求的联系,以便在调试的时候摸清规律。针对登录接口的情况,主要关注下前后几个接口的联系,主要关注以下内容:Response Headers,Request Headers 、以及接口的返回内容,关注前面接口的Response header 和返回内容是否与下面接口的 Request Headers存在联系。

        对于登录接口而言,一般情况下以上三者多少会存在点联系,这我们就需要借助抓包工具进行观察,个人偏好fiddler,可以比较清楚的看见重定向接口之间联系。

        在调试过程中主要用到的库RequestsLibrary,YamlLibrary、Collections以及String等Python的第三库。

      对于需要多个重定向接口才能实现的登录状态,主要的难点在于如何在调试过程抓到重定向接口的Response Headers。对于fiddler等的抓包而言,只要在登录界面进行一次登录就可以看到完整的接口重定向过程以及各个接口的Response Headers。但是在RF中,在注意的情况下直接调用登录接口是不可能实现的。在调状态码为302的接口时,RF执行的结果也是重定向至下一个接口,即返回码为200。

       针对上述的情况,RequestsLibrary库提供了Get Request 关键字可以对重定向接口进行操作以及取Response Headers。在使用Get Request  关键字时,最需要注意的是重定向的参数,需要将参数设置为false,调用结果的状态码为302,即在调试的时候不会发生跳转。

        默认情况下allow_redirects为none,在重定向去情况下传入的参数须为false。

        具体使用如下所示:

        在传入${false}时,可以使用evaluate 关键字对${false}进行初始化

       在传入${false}时,有可以不用进行初始化,直接传allow_redirects=${false}。

        在调302接口之后,需关注下接口Response Headers的Location部分,一般Location的URL都是重定向的地址,可以用${addr.headers['location']}进行跳转地址的提取,这部分的URL一般都会包含跳转的地址和参数,取出URL即可再用RF针对此URL进行请求,若是多个302的重定向接口之后才会实现登录,只需按照上面所述的多次进行即可。

        总结:利用RF调用重定向接口,主要技巧是在于如何对重定向进行拦截,若是对allow_redirects参数不进行设置进行直接调用接口,则会直接跳转至重定向之后的接口,则很难抓到接口之间所需要的联系。其次,对于多个接口实现登录的,则需在调用之前了解接口之前的联系,一般情况下上一接口的Response Headers 以及返回内容和下一接口的Request Headers、请求参数或者请求地址存在某种联系,具体的阐述不在此再进行展开说明,根据实际情况而定。 关于自定义接口测试返回码设置和接口测试返回码说明的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 自定义接口测试返回码设置的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于接口测试返回码说明、自定义接口测试返回码设置的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:注解实现接口缓存(清除缓存注解)
下一篇:自定义接口测试返回码命令(接口测试常见的返回码)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~