首页 > 其他分享 >接口测试学习111

接口测试学习111

时间:2024-04-28 21:58:27浏览次数:20  
标签:请求 get 接口 111 线程 测试 参数 name

1、同步接口:

2、异步接口:不需要等接口的调用结果也可以继续执行。轮询方式。

3、回调接口:

一、代理类型

1、协议:http、https。代理fiddler

2、协议:TCP协议簇,代理:socks4

3、协议:TCP、UDP协议簇,代理:socks5

二、接口测试范围/类型

1、接口功能测

2、接口性能和安全测试

3、接口兼容性测试

 

三、接口测试的办法:手动、自动

四、HTTP协议与请求、状态

1、HTTP协议:超文本协议

2、get和post的区别:

(1) get请求一般将参数附加在请求目标之后;

Post请求将参数附加在message-body之后;

(2) 幂等性:get请求(幂等性),post请求(非幂等性)

(3) 可缓存:get请求(可缓存),post请求(一般默认不缓存)

(4) Get请求参数可以保存到书签,post不能;

(5) 请求参数大小限制:get请求 协议没有限制,基于安全考虑,浏览器和操作系统对此有要求(post请求 协议没有限制,应用程序可能有限制)

(6) 表单传输数据(get、post):传送文件必须使用post请求。

五、状态码

1、范围:100-599;

2、100-199:表示请求已被服务器接受,还需要下一步动作,常见:101【协议切换】;

3、200-299:请求成功;常见200【请求成功,请求被服务器正常处理】、201【资源被创建】、204【没有内容,put请求更新资源,但没有内容】、206【服务器将请求的部分内容传回】;

4、300-399:重定向。304【从缓存中读取资源】

5、400-499:语法错误。401【未经授权,基本认证、摘要认证】、403【请求被服务器禁用,如权限问题】、404【请求的资源未找到,原因:网页或资源被删除或移动】、405【请求的办法不支持,服务器必须支持的办法:get,head】

6、500-599:服务器发生内部错误。500【服务器内部错误】、502【网关的错误】、503【不支持服务,如:服务器繁忙、停机维护】、504【网关超时】、505【HTTP版本不对】

 

六、条件请求【状态码300-399】

1、概念:检测请求资源是否被修改。

2、场景:验证缓存的有效性、验证文件的完整性。

3、验证器类型:最后修改时间(Last-Modified)、实体表情“Etag”。

操作:HTTP信息头管理器:If-None-Match(Etag)、If-Modified-Since(Last-Modified)---返回状态码是304。

七、范围请求:允许服务器返回部分请求内容【在传输大数据文件、媒体文件、大数据时非常有用,服务器先将部分请求结果返回,达到持续传输的效果】

1、前提:服务器支持范围请求。标志:Accept-Ranges:bytes.

2、单范围请求:Range:bytes=0-1023;

3、多范围请求:Ranges:bytes=1000-2000,3000-4000;

4、状态码结果:206【返回部分请求结果,请求成功】

5、操作:HTTP信息头管理器:名称:Range,值:1-1023。

 

八、条件范围请求:在范围请求时,服务器修改文件,这时请求的可能是范围请求,也可能是新的全新请求。

1、操作:HTTP信息头管理器:①名称:Range,值:1-1023。②名称:If-Range,值:(Etag)

 

九、重定向:客户端在访问服务器地址时,地址URL被移动,服务器会返回一个新的地址让客户端代理进行访问。临时重定向:;永久重定向:301【其他请求可能变成get请求】、308【】。

 

十、tcpdump协议分析工具

1、linux系统自带的协议分析工具;

2、Ifconfig:查看物理接口;

3、Tcpdump -i eth0:指定接口;

4、Tcpdump -i eth0 -c 5 :指定抓取eth0接口的5个接口;

5、RPF过滤指定数据包,符合过滤条件则输出,不符合则不输出。

①原语:限定词 限定词 IP或数字

src host 192.168.50.5 && dst host 192.168.30.123

②tcpdump ether host 3e:42:d5:22:1d:63,如果是动态地址的话,可以对mac地址进行限制。

③tcpdump tcp port 80,过滤tcp协议的80端口的数据。

 

6、Tcpdump抓取HTTP请求数据包

①get请求

Tcpdump -s 0 -A ‘tcp dst port 80 and tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x4755420’

②post请求

Tcpdump -s 0 -A ‘tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)’

③查看http请求与响应

Tcpdump -s 0 -A ‘tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) !=0)’

 

 

 

二、jmeter介绍

1、六大组件:配置元件、前置处理器、定时器、(取样器)后置处理器、断言、监听器。

2、设置属性:函数助手中的“setproperty”设置属性。也可以使用“后置处理器-JSR223后置处理程序的props.put(name,value)”设置属性。

3、获取属性:1。通过在后置处理器-JSR223后置处理程序使用def pv = props.get(“name”)--log.info(pv)获取属性;2.

4、jmeter属性是全局的。Jmeter变量是局部的。

5、变量的引用:${name}

6、定义变量:测试计划、用户自定义等。也可以在“后置处理器-JSR223后置处理程序”使用vars.put(name,value)字符串类型变量,定义vars.putobject(name,value)非字符串类型变量。

7、获取变量:在“后置处理器-JSR223后置处理程序”使用vars.get(name)获取变量。

8、调试变量和属性:取样器:debug调试取样器。后置处理器:调试后置处理程序进行debug变量和属性。

 

 

三、无名参数请求

1、json、xml、rest、soap请求类型都是带有无名参数进行请求。

2、Post请求必须设置content-type。

3、查询字符串:可以放在path(请求目标后面),也可以放在参数中。

4、在parameter(参数)中,name不全为空时,content-type为:application/x-www-for。当name全为空,content-type为text/plian。

5、在消息体数据中,content-type为text/plian。

6、在文件上传中,但name不全为空,content-type为默认设置的content-type。当name不为空,content-type为multipart/form-data

 

四、下载文件

1、下发get请求获取文件的URL;

2、在JSR223 sample中输入一下内容:

import java.io.*;

byte[] result = prev.getResponseData(); //这个是获取到请求返回的数据,prev是获取上个请求的返回

String file_name = "D:\\BaiDu.jpg"; //代表存放文件的位置和文件名

file = new File(file_name).withOutputStream { out ->
out << result
out.close()
    }

 

 

五、参数化实现

1、测试计划中的全局变量;

2、前置处理器-用户参数可以实现参数化;

3、配置元件-CSV数据参数化;

4、JDBC连接数据库进行参数化;

5、内置函数可以参数化,如:Random。

 

 

 

六、不同线程组使用不同CSV数据参数文件:使用函数${__threadGroupName}

操作:

1、假设线程为:tg1、tg2、tg3.....tgn;

2、csv文件名称为:tg1.csv、tg2.csv、tg3.csv.....tgn.csv;

3、CSV数据参数设置路径为:C:/Users/linka/Desktop/${__threadGroupName}.csv。其中__threadGroupName就是CSV数据参数的参数化名称。并且线程共享模式选择:“当前线程组”(不是“当前线程”)。

注:CSV数据参数和线程组是同一级。并且线程组名称和csv文件名称一致。

 

 

 

七、不同线程用不同CSV数据参数文件:使用函数${__threadNum}

操作:

1、线程组1有3个线程数:1、2、3

2、线程组2有2个线程数:1、2

3、csv文件名称分别为:t1、t2、t3、t4、t5

4、CSV数据参数:C:/Users/linka/Desktop/t${__threadNum}.csv。并且线程共享模式选择:“当前线程”

注:CSV数据参数和线程组是同一级。

 

八、JSON断言

1、先CSV中提取名称如user、pwd;

2、在请求中增加json断言,在请求结果中使用:$.user查询键值;

3、在json断言中的“Assert Json Path Exists:$.user”,在“Expected Value:${user}”

4、需要对多个请求结果进行断言时,则需要添加多个JSON断言。

标签:请求,get,接口,111,线程,测试,参数,name
From: https://www.cnblogs.com/linkaiwei/p/18164568

相关文章

  • 短信验证码登录接口,如何防止恶意攻击
    本文相关词汇:OTP-One-TimePassword一次性动态密码,这种验证码具有时效性,通常有效期在1~2分钟内。手机短信验证码就是一种OTP。MFA-多重因子认证。先说单因子认证,我们的系统登录通常是账密登录,这种就是单因子认证方式的登录。现在为了安全,许多网站开始使用双因子认证登录......
  • 接口规范
    需要注意兼容php、java等多语言,即弱类型+强类型如返回user_name字符串类型,就不能查询失败返回null 返回json格式codeint格式msgstring格式data根据接口不同返回不同格式一般是对象或者数组,如果不需要使用data,可以返回null(默认null) php创建对象$obj=newstdClas......
  • 单元测试工具junit的安装配置和使用
    本次实验针对Junit单元测试工具展开,在老师给的文档里面采用的是eclipse继承Junit单元测试工具,但过程比较麻烦并且后续单元测试累的编写也不方便,个人认为idea的使用便捷程度和舒适度较高,并且配置Junit单元测试工具的过程非常简单:Junit4安装与使用(IDEA)_junit4下载教程-CSDN博客本......
  • httprunner 4.x学习 - 12 测试用例引用另一个测试用例
    前言把登录用例变 export导出变量,变成全局变量,这样其它用例可以引用登录用例config:name:登录variables:username:"admin1"password:"123456"teststeps:-name:postrequest:method:POSTurl:${ENV(base_url)}/loginjson:......
  • Python-PyQt5接口压测工具分享
    1、页面介绍  2、运行效果 ......
  • C#身份查验接口、身份证文字识别接口、金融身份验证
    针对金融领域远程自主开户的实名认证,翔云人工智能开放平台提出了有针对性的解决方案。翔云实名认证API其中包含了身份证实名认证、人脸识别、人证合一和银行卡实名认证,可快速识别提取用户身份信息,实时联网权威数据源进行用户身份的验证,既解决了远程身份认证问题,也避免了身份被......
  • .net core,.net 6使用SoapCore开发webservice接口,以及使用HttpClientFactory动态访问we
    1.使用soapCorenuget包 2.新建接口及实现2.1新建接口 2.2新建实现 2.3新建接收实体 2.4返回实体 3.接口注入使用  4.启动程序,直接访问对应的asmx地址  ......
  • 实验三-软件测试
    目录一、实验题目:软件测试二、实验目的三、实验内容四、实验要求五、设计单元测试用例六、单元测试结果截图七、实验中遇到的问题及解决方法八、参考代码链接一、实验题目:软件测试二、实验目的1、熟悉开发环境下的自动化测试工具;2、利用自动化测试工具进行自动化单元测试。......
  • 实验三——软件测试
    一、实验题目:软件测试二、实验目的1、熟悉开发环境下的自动化测试工具;1、利用自动化测试工具进行自动化单元测试。三、实验内容1、选择开发环境,IDEA或PYCHARM任选其一;2、基于所选择的开发环境实现对输入的n个整数进行排序的代码;3、对所编写代码设计测试用例;4、基于所选择......
  • idea插件之apifox自动化测试
    /***测试apifox插件自动化读取*/@RestController@RequestMapping("/api")publicclassSwaggerApiFoxController{/***这是一个测试方法*@return*/@RequestMapping("/test")publicStringtest(){return"test";}}1......