接口测试工具设置请求头(接口测试及常用接口测试工具)

网友投稿 918 2023-01-01


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

本文目录一览:

【分享】接口测试-header头部详解

一、什么是header

header:标头 (header) 是服务器以 HTTP 协议传 HTML 资料到浏览器前所送出的字串,在标头与 HTML 文件之间尚需空一行分隔。

-----百度百科

header是发送请求时携带的头部信息。通常一些鉴权的信息:authentication/cookie、响应的数据格式:content-type等等的设置。当然响应的数据也会返回一些头部信息。

二、header头部参数对应含义

1、Request header:

User-Agent:告诉Http服务器,客户端使用的操作系统和浏览器名称和版本(这也是区分pc端或者app端的方式)

app端也可区分Android和iOS如图:

2、Clint头域:

Accept:浏览器端可以接受的媒体类型(MIME);

Accept-Charset:浏览器可接受的字符集;

Accept-Encoding:浏览器申明自己接受的编码方法,压缩方式,是否支持压缩,支持什么压缩方法

Accept-Language:申明自己接受的语言

clint头域的作用,客户端和服务器端要进行通信,那么客户端就得向服务器申明自己交流的方式(User-Agent)、交流的语言(Accept-Language)、交流的字体(accept-Encoding),已经客户端接受的内容(accept)等

3、Cache头域:

If-Modified-Since:把浏览器端缓存页面的最后修改时间发送到服务器上,服务器会把这个时间与时间文件的修改时间进行比对 ,时间一直返回304使用本地缓存数据,时间不一致返回200和新的文件内容,客户端接到之后会丢弃旧文件再把新文件缓存起来并显示在浏览器中 。

If-None-Match:和ETag一起工作,工作原理是HTTP Response中添加ETag信息,当用户再次请求该资源时,将在HTTP Request中加入If-None-Match信息(ETag的值)。如果服务器验证资源的ETag没有改变(该资源没有更新),奖返回一个304状态告诉客户端使用本地魂村文件。否则将返回200状态和新的资源和Etage,使用这样的机制将提高网站的新性能。

Pragma:作用是防止页面被缓存,在HTTP/1.1版本中,它和Cache-Control:no-cache作用一模一样

Cache-Control:用来指定Response-Request遵循的缓存机制,如下:

Cache-Control:Public可以被任何缓存所缓存()

Cache-Control:Private内容只缓存到私有缓存中

Cache-Control:no-cache所有内容都不会被缓存

4、Cookie/Login头域

Cookie:最重要的header,奖cookie的值发送给HTTP服务器

5、Transport头域

Connection:连接的状态,keep-alive当打开一个网页后,客户端和服务器之前传输Http数据到TCP连接诶不会关闭,如果客户端再次访问这个服务器的网页,会继续使用这条已经建立的连接;close当打开一个请求完成后,客户端和服务器之前用于传输HTTP数据的TCP连接会关闭,当客户端再次发送请求,需要重新建立TCP连接

Host(发送请求时,该报头域是必须的):请求报头域而主要用于指定被请求资源的Internet主机和端口号,他通常从HTTP URL中提取出来的,host中端口号省却却表示默认端口后80

6、Entity头域

Content-Length:发送给HTTp服务器数据的长度

Content-Type:互联网媒体类型

7、Miscellaneous头域

Referer:提供Request的上下文信息的服务器,告诉服务器我是从哪个连接过来的。

8、Ajax请求方式

服务器判断request请求是同步还是异步,如果header中有X-Requested-With:XMLHttpRequest表示为异步请求,当X-Requested-With:null是为同步请求

三、接口测试工具

接口测试和接口文档生成工具:apipost

接口测试和接口性能测试工具:jmeter

Postman接口测试之:Postman实现接口请求(1)

课程实例使用的url地址汇总:

开源接口部分:  https://api.apiopen.top/api.html

1、获取时间get接口 http://poetry.apiopen.top/getTime

2、网易新闻post接口 https://api.apiopen.top/getWangYiNews

3、百度ip接口 https://sp1.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query=12.12.12.12co=resource_id=5809t=1636461955537ie=utf8oe=gbkcb=op_aladdin_callbackformat=jsontn=baiducb=jQuery110206769724197850711_1636461449011_=1636461449013

电商项目部分: 电商网站: http://www.testingedu.com.cn:8000/

4、电商登录接口:http://www.testingedu.com.cn:8000/index.php?m=Homec=Usera=do_logint=0.9806405470978172

5、文件上传接口 :http://www.testingedu.com.cn:8000/index.php/home/Uploadify/imageUp/savepath/head_pic/pictitle/banner/dir/images.html

自动化平台项目:平台网站: mypro/#/login

6、平台登录接口:mypro/api/user/login

Token接口项目:Token项目网站: http://www.testingedu.com.cn:8081/inter/

7、Token项目 SOAP接口:http://www.testingedu.com.cn:8081/inter/SOAP?wsdl

1、 Postman 安装之后, 可以进行一下更新。

使用的时候最好可以注册一个账号。

先创建一个workspace,用于管理接下来使用过程中产生的内容。

2、接口测试的基本流程: 本质就是抄。

1、了解接口信息 : 由开发提供接口文档, 或者通过抓包来获取接口报文信息。

2、 设计测试用例

3、 执行测试用例: 用postman等工具执行。 请求发包。

4、验证返回结果。

3、 HTTP协议接口报文: 理解成寄快递。

接口报文分为请求和返回,格式其实是相同的。

请求

请求四要素: http方法 、url地址、请求头 、请求体。

请求行: http方法(邮寄方式) url(地址) http协议版本

请求头: 键值对格式 ,键:值 用换行分割的方式。 (快递单)

除了特殊指定的要填的请求头以外,注意 post请求 需要关注content-Type请求头,表示的是请求体的编辑格式。(快递的运输方式 常温/冷冻)

常见的content-Type类型:

application/x-www-form-urlencoded: url编码格式: 键=值键=值

application/json: json格式字符串: {"键":值,"键":值}

postman选 raw格式之后,下拉栏选择json

注意:复制json格式的请求体的时候,如果从浏览器开发者工具中复制,记得确认键必须带双引号。最好view source 之后再复制。

multipart/form-data: 用于进行文本和文件的混合传递。 完成文件上传。

选择posmtna中的 form-data进行参数填写。

注意: Name空格中,可以选择下拉 file或者text。

文件用file上传,文本用text上传。

text/xml: 用xml格式来进行传递。 <键值</键

选择 body中的 raw格式 ,下拉栏用xml进行填写:

注意:content-type postman会默认使用 application/xml,需要自己确认,到底是text/xml还是application/xml,如果不对,进行修改,最后是直接去掉原有的,加一个新的content-type头。

请求体 : 请求头之后空一行 ,之后的就是请求体。 (寄的东西)

返回

返回行:http协议版本 HTTP状态码(物流状态) 状态码描述

返回头: 键值对格式 ,键:值 用换行分割的方式。 (快递单)

返回体 :返回头之后空一行,就是返回体 (对方寄回的东西)

返回:重点验证返回体。

4、http协议抓包:

使用浏览器开发者工具抓包:

在网页上右键检查,或者按下F12,打开开发者工具,切换到network 界面。

注意:记得勾选 preserve log。

请求体中:request payload (json格式、xml格式和普通文本) 和form data (文件和x-www-form-urlencoded格式)

使用 fiddler /charles 等http抓包工具抓包:

在fiddler菜单右侧,用inspector 选项进行查看,选raw(原始)格式能够直观看到报文格式。

http是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。

http协议是基于url地址的资源请求协议

5、用postman发送报文请求:

1、http 方法 和 url 进行填写。 注意 url中最后带上的空格也会有影响,所以千万注意。

2、请求头一般先不做过多关注,先用默认的,除非有明确的说明需要设置某个请求头。

3、请求体在postman 请求栏的body中进行设置。选择相应的content-type格式进行编辑,可以自动设置,不用自己设置 请求头中的 content-type。

6、unicode编码: \u 4位16进制数,用于表示某个特殊的字符。

例如:\u7f8e\u56fd\u963f\u62c9\u65af\u52a0

7、get和post的核心区别:

get方法,通常不带请求体。

而post方法可以携带请求体。

END

如何用postman做接口测试

具体步骤如下:

1、在电脑桌面上找到安装的postman软件位置,鼠标双击图标打开;打开后显示如下界面即为打开成功。现在我们开始对一个接口进行测试。

2、点击左上角的“+New”,在打开的弹窗页面中切换到creatNew页面(一般打开后默认就是creatNew页面),鼠标点击Collection,新建一个集合,这个集合就类似于一个文件夹,我们可以把一个项目或者一个完成功能的所有接口都放在它的里面。

3、在新打开的弹窗页面creat a new collection中,输入你想要给这个collection起的名字,然后再下方的description中添加描述说明,这个非必填项,所以可以忽略不写,直接点击右下角的“creat”进行确定。

4、选中刚刚建的collection,鼠标右击,在打开的菜单栏中选择“add  request”,会进入下面的页面,输入这个接口请求的名称,同样可以在下方的description中添加描述说明,点击Save进行保存。

5、按照接口文档中的描述,输入接口请求的url,添加请求头和请求体,点击运行,就完成了一个接口的测试。

如何使用eolinker对http的接口测试

eoLinker 通过填写 URL,header,body 等就可以发送一个请求,同时获取返回结果,能够发送任何类型的 http 请求,支持 GET/POST/PUT/DELETE/PATCH/OPTIONS/HEAD 等。有些小技巧分享给大家。

1、发送请求

( 1 )指发送请求的方式,最常用的是 GET 和 POST。点击下拉列表可以看到共 9 种请求方式供选择; ( 2 )请求的 URL,即接口地址; ( 3 )可设置请求头部,包括 Header 及 Auth 认证; ( 4 )请求参数支持表单(Form-data)、RESTful、源数据( Raw )格式,并支持表单转源数据; ( 5 )点击可以以键值对的方式添加 URL 参数; ( 6 )获取返回结果分为 body 和 header,按需进行查看。

Body 页面: 

Header 页面 

2、设置参数默认值 在编辑接口参数信息时,点击“更多设置”,填入参数值可能性即可。测试时参数值将被自动填入,设置多个值可能性可在测试时按需选择。

编辑接口界面 

测试界面 

3、使用参数构造器 该功能可对原始参数进行渲染转换,获得渲染转换后的参数。

构造参数操作如下

其意思分别表示: (1) 参数初始值; (2) 选择的参数构造操作; (3) 参数构造表达式; (4) 参数构造后的结果。

4、为接口添加环境 对项目进行环境管理,设置环境变量、请求头、前置 URI 等信息,在接口测试时便可选择对应环境,一键进行测试。

添加环境操作

下拉框可选择接口环境

python怎么做接口测试工具

之前使用过urllib和urllib2做接口测试,在做的途中,感觉使用urllib2直接进行的get,post 请求并没有那么好用。作为测试人员,所需要的测试工具应当以方便为第一要务,测试的耗时只要是真正的无人值守,耗时不是太久的都可以接受。所以,本人又尝试了一个新的包:requests。

Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner。更重要的一点是它支持 Python3 !推荐一篇文章,上面有该包的详细说明 传送门,以下只会写到我用到的部分,所以更多的了解需要自己去搜资料

好了,我们开始吧!!

接口测试中重要的部分:

1.get和post方法

2.用到的参数

3.请求头

4.cookie

5.日志输出

6.如何调试你的程序--借助fiddler

按照以上的顺序,我将一一说明我的搞法,因为编码能力有限,所以可能看着很low

一、get和post

requests包很好的实现了post和get方法,示例:

1 import requests2 response_get = requests.get(url, data, headers, cookies)3 response_post = requests.post(url, data, headers, cookies)

其他的访问方式如put,head等等,用法几乎都是如此,因为没用到,所以省略

现在一般的接口返回值有页面和json俩种,按照需求,可以分别使用response.text或者response.content获取,text获取的是unicode类型的返回值,而content返回值是str类型,所以我一般使用content来获取返回值,因为这样获取的返回值可以直接使用正则或者in的方式来验证返回值结果是否正确。

我自己为了实现接口的自动访问,所以又在requests上面加了一层封装,就像下面这样:

1 def main_get(list_result, cookies): 2     """ 3     用于模拟get请求,返回结果 4     :param list_result:空列表,用于存储结果 5     :param cookies: 登陆后的cookie 6     :return:访问结果 7     """ 8     # List_interface_get写在接口文件里,文件是py格式,然而它本身是字典类型 9     for key in List_interface_get:10         try:11             f1 = requests.get(key, cookies=cookies)12             if f1:13                 print f1.content14                 print List_interface_get[key]+'接口访问成功'15                 split_line()16             list_result.append(f1.content+'||'+key)17             # print f1.read()18         except AssertionError:19             print 'One Error in get'20             pass21     return list_result22 23 24 def main_post(result_list, url_list, param_list, payload_list, note_list, cookies):25     """26     模拟post请求27     :param result_list: 结果字典28     :param url_list: 接口字典29     :param param_list: 入参字典30     :param payload_list: header字典31     :param notelist: 描述字典32     :param cookies: 登录获取的cookie33     :return:填充完成的结果列表34     """35 36     # post这块写的比较low,最好自己搞一个数据结构把它搞定37     for key in range(1, 9):38         a = requests.post(url=url_list[key], data=param_list[key], headers=payload_list[key], cookies=cookies)39         try:40             if a.content:41                 print a.content42                 print note_list[key]+'接口访问成功'43                 split_line()44             result_list.append(a.content+'||'+url_list[key])45         except AssertionError:46             print 'One Error in post'47             pass48     return result_list

二、用到的参数以及请求头

我用的方法是把这些都存放于一个py文件中,当然也可以使用excel或者xml文件,甚至于使用DB。项目紧急,凑合了一下,这里的数据结构主要为了符合上面封装的函数,直接上代码看吧

1 BaseURL = 'https://******.com'  # 测试环境 2 # 使用什么数据结构不重要,关键看实现方法中怎么解析你的测试数据 3 List_interface_get = { 4     BaseURL+'/api/****/****/****?****=1****=375': '描述' 5 } 6 # 以下是用于post的接口 7 List_interface_post = { 8     1: BaseURL+'/api/****/****/****/****' 9 }10 # 以下是用于post的数据11 List_post_param = {12     1: 'new=222222old=111111'13 }14 # 以下是post接口的描述,它是干嘛的15 List_post_note = {16     1: '修改密码'17 }18 # 以下是post用到的请求头19 List_post_header= {20     1: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}21 }

三、cookie

一款产品的接口测试中必定会使用登录状态,需要使用cookie实现,之前写过使用cookiejar获取cookie,requests中获取cookie的方法更为简单,不过首先你得知道是哪个接口set了cookie,不过一般是登录啦。登录接口访问之后set了cookie,那好,就去调用登录接口,然后拿到搞回来的cookie:

# 只需要这样!!login = requests.post(login_url, data=login_data, headers=login_header)
cookie = login.cookies

这个cookie就是登录状态了,拿着随便用,需要登录的就直接cookies=cookies

四、日志输出

这里注意看第二步中接口数据,有接口描述,也有接口是啥,第一步中又把content做成返回值了,具体拼接方式自己想吧,东西全有了,想写啥写啥,还可以加上获取本地时间的api获取接口运行时间,log文件该长啥样是门学问,这里就不献丑了。

五、借用fiddler调试你的脚本

requests允许使用代理访问,这有啥用,真有!fiddler是一款截包改包的工具,而且通过扩展可以进行请求间的比对,这样让你的程序访问的请求和真正正确的请求作对比,为啥我的程序访问出错?是不是缺了请求头?参数是不是丢了?cookie是不是少了?很容易看出来。写法如下:

proxies = {     "http": "",     "https": ""}
requests.post(url, proxies=proxies)

这样就可以走代理了,除fiddler以外还有charles和burp suite可以使用,具体看个人喜好吧。

如何使用postman对http的接口测试

先安装一个postman然后打开接口测试工具设置请求头,输入请求接口测试工具设置请求头的接口地址接口测试工具设置请求头,并选择请求方法接口测试工具设置请求头,配置请求参数数据,请求头设置等,新手刚入门的小白可以看下云层的百度阅读电子书《接口测试实践》读者已超过8W,百度文库搜索“”云层“”就找到接口测试工具设置请求头了,希望能帮助到你。 关于接口测试工具设置请求头和接口测试及常用接口测试工具的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 接口测试工具设置请求头的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于接口测试及常用接口测试工具、接口测试工具设置请求头的信息别忘了在本站进行查找喔。

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

上一篇:微服务网关需求篇(微服务架构 网关)
下一篇:java 对称加密算法实现详解
相关文章

 发表评论

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