接口测试学习111

1、同步接口:

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

3、回调接口:

一、代理类型

1、协议:httphttps。代理fiddler

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

3、协议:TCPUDP协议簇,代理:socks5

二、接口测试范围/类型

1、接口功能测

2、接口性能和安全测试

3、接口兼容性测试

 

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

四、HTTP协议与请求、状态

1、HTTP协议:超文本协议

2、getpost的区别:

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

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

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

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

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

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

(6) 表单传输数据(getpost):传送文件必须使用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【请求的办法不支持,服务器必须支持的办法:gethead

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

 

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

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

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

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

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

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

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

2、单范围请求:Rangebytes=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.getname--log.info(pv)获取属性;2.

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

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

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

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

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

 

 

三、无名参数请求

1、jsonxmlrestsoap请求类型都是带有无名参数进行请求。

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

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

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

5、在消息体数据中,content-typetext/plian

6、在文件上传中,但name不全为空,content-type为默认设置的content-type。当name不为空,content-typemultipart/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、假设线程为:tg1tg2tg3.....tgn

2、csv文件名称为:tg1.csvtg2.csvtg3.csv.....tgn.csv;

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

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

 

 

 

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

操作:

1、线程组13个线程数:123

2、线程组22个线程数:12

3、csv文件名称分别为:t1t2t3t4t5

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

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

 

八、JSON断言

1、CSV中提取名称如userpwd

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

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

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

posted @ 2024-04-28 21:47  双木Leo  阅读(4)  评论(0编辑  收藏  举报