• 0
  • 0
分享
  • postman接口测试和压力测试——软件测试圈
  • TIMI 2021-07-09 10:31:13 字数 2948 阅读 1038 收藏 0

前言

现在很多公司写后端代码和前端代码已经分工很明确了,前后端把接口定义好,然后各自写各自的代码就可以了。那么对于服务端的开发人员来说,写好了代码后,对外提供了API,这时候没有页面可以调用调试,如果等着客户端写完代码再测试的话,那样工作的效率是及其低下的。那么服务端要学会模拟客户端的调用,来调试自己的代码,提早发现问题,这样后续跟客户端进行联调的时候,就大大提高了效率。

我们今天讲讲Postman模拟客户端调试工具,这是我平时工作中最常用的工具之一。

Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。它只要在Chrome里安装一个插件即可完成强大的功能。

但是由于2018年初chrome停止对chrome应用程序的支持,你的postman可能无法正常使用了。目前chrome应用商店能使用的就是chrome扩展程序和主题背景。

不过Postman也提供了应用程序的下载。https://www.getpostman.com/apps

根据自己的操作系统,下载不同的版本即可。

官网需要翻墙才能下载,所以我提前下载下来,小伙伴们直接在公众号回复“postman”即可获取下载地址。包括windows版本和mac版本。如果有需要linux版本的话,可以给我留言,我帮你下载。

Postman介绍

下面是在网上随便抓了一个请求地址来做演示,把请求地址填入地址栏,此请求为GET请求。点击Send发送请求,请求结果将会在下方显示出来。每次的请求历史数据,会被记录下来,但是经常使用的请求,还是保存一下,这么每次用的时候,选择就行了,及其方便。

另外,最好创建一个账号,这样数据将会永久保存下来,不至于重装了系统或者换了台电脑数据都没了的尴尬。

1.png

保存的时候起个好听的名字

2.png

Header会传输一些我们需要的一些通用的数据,定义好之后,每个接口几乎都是一样的。所以,把这些数据进行预置,这样就不用每新建一个请求,都要重复的添加Header了。

请求的时候,会把请求状态,请求的时间,以及返回的数据大小返回回来。这样一目了然。最常见的status就是200表示成功,400表示未找到资源。500开头的基本都是服务端异常等等。

3.png

4.png

点击params可以把url里的参数以列表的形式展现出来,方便编写

5.png

还有一种更方便的编辑方式,点击Bulk Edit ,直接修改字符串的方式修改,而且可以复制粘贴,方便迁移到其它地方。而且这个功能在其它参数编辑的地方都适用。

6.png

我们来看看如何发送POST接口

7.png

form-data、x-www-form-urlencoded、raw、binary的区别

x-www-form-urlencoded

当用户通过form表单提交数据的时候,例如:

<form method="post"action="http://api.test.com/user" >
    <inputtype="text" name="name">
    <inputtype="text" name="age">
</form>

提交时会向服务器端发出这样的数据(已经去除部分不相关的头信息),数据如下:

POST /user HTTP/1.1
Content-Type:application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: api.test.com
Content-Length: 21
Connection: Keep-Alive
Cache-Control: no-cache
name=互扯程序&age=18

它的Content-Type是application/x-www-form-urlencoded,这表示消息内容会经过URL编码

form-data

当需要上传文件(可以上传多个文件),并且有参数同时传递的时候,选择这个选项可以上传文件。

举个例子

<form method="post"action="http://api.test.com/user/upload.do" enctype=”multipart/form-data”>
    <inputtype="text" name="desc">
    <inputtype="file" name="pic">
</form>

浏览器将会发送以下数据:

POST /user/upload.do HTTP/1.1
Accept-Language: zh-cn,zh;q=0.5
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Content-Length: 60408
Content-Type:multipart/form-data; boundary=ZnGpDtePMx0KrHh_G0X99Yef9r8JZsRJSXC
Host: api.test.com

我们看到Content-Type:multipart/form-data;

当需要上传数据的时候,必须设置enctype=“multipart/form-data”,

enctype:规定在发送到服务器之前应该如何对表单数据进行编码,他有如下的三个值:

  1. application/x-www-form-urlencoded。默认的编码方式。所有字符都会进行编码(空格转换为 “+” 加号,特殊符号转换为 ASCII HEX 值)。

  2. multipart/form-data 。 指定传输数据为二进制类型,比如图片、mp3、文件。 不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。

  3. text/plain。纯文体的传输。空格转换为 “+” 加号,但不对特殊字符编码。

其实form表单在你不写enctype属性时,也默认为其添加了enctype属性值,默认值是enctype=”application/x- www-form-urlencoded”,所以上面注册用户的时候虽然没写,其实默认加上了。

raw

当需要给服务端传递json,xml等数据的时候选择raw,当选择了raw的时候,header里会自动加上

Content-Type: application/json

例如:

$.ajax({
    url:"/user/",
    data:JSON.stringify(user),
    method:"POST",
    contentType:"application/json",
    success: function(res){
        console.info("添加成功")
    }
});

8.png

binary

只能上传一个文件,也不能添加参数。

9.png

压力测试

当你需要验证你的接口的抗压能力的时候,可以点击Runner,进行压力测试

10.png

注意:压力测试只能以文件夹的方式执行多个接口,不能单独执行,如果想要测试某一个接口,就创一个文件夹,这个文件夹里只有一个要测试的接口。

11.png

点击执行,并发执行了500次。每次再100毫秒内返回结果。

12.png

本文转载自:https://blog.csdn.net/qq_40221345/article/details/80818437 

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   很多对软件测试行业感兴趣的小伙伴,都听说过兼容性测试,但却不太理解兼容性测试是干啥的。除了我们日常经常听到的手机版本兼容,游戏升级迭代,其实兼容性测试还包括很多其他方面。今天,我们就一起来盘一盘什么是兼容性测试吧~  什么是兼容性测试?  我们先来想一下,什么叫兼容。也就是说放在不一样的载体,或者不一样的环境里,这个程序都必须能正常运转,这个叫兼容。所以,也就不难理解什么叫兼容性测试了吧~  根据度娘官方的解释:软件兼容性测试是指,检查软件之间能否正确地进行交互和共享信息。  随着用户对来自各种类型软件之间共享数据的能力,和充分利用空间同时执行多个程序能力的要求,测试软件之间能否协作变得越...
            0 0 1046
            分享
          •       Prometheus      配置说明      在istio网格中,每个组件都会暴露一个提供metrics的endpoint。Prometheus可以从这些endpoints上抓取metrics(通过Prometheus配置文件来设置scraping,端口以及TLS等)。      为了采集整个网格的metrics,需要配置Prometheus scraping组件:控制面(istiod deployment)ingress和eg...
            0 0 1791
            分享
          •   在软件相关行业中,如果说开发属于一个开创型的岗位,是从无到有的过程,那么测试则是一个需要多重沟通的岗位。为什么我们常说测试是衔接岗位呢,原因不仅是测试参与的项目环节很多,并且测试对接的人员,需要打交道的人员比较杂,是一个承前启后不可或缺的一环,测试在整个过程中更多的是发挥推动的作用。测试岗位越往上走,越能发掘沟通的重要性。  如果想做好一个测试管理人才,除了跟进项目上的事情,还要学会跟不同的人员沟通。这样才能推动问题有效的快速解决。我们从三个方面说明测试衔接的必要性。  第一部分:功能测试参与的项目过程  先来看下测试为了保障软件质量,需要做的事情,在每一个环节中测试都需要衔接不同环节。 ...
            0 0 800
            分享
          •   据台湾《经济日报》,特斯拉正在增加 Dojo D1 超级计算机芯片的订单。Dojo D1 是特斯拉专门为 Dojo 超级计算机设计的定制芯片,由台积电代工。  知情人士透露,特斯拉计划明年将 Dojo D1 芯片的产量增加一倍,达到 1 万片。预计到 2025 年,台积电代工的 Dojo D1 芯片订单量将持续增加,考虑到 Dojo 超级计算机的可扩展性。  特斯拉使用 Dojo 超级计算机训练高级驾驶辅助系统和完全自动驾驶系统的人工智能模型。随着 FSD、自动驾驶出租车和 Optimus 机器人等项目的推出,Dojo 超级计算机对公司运营的贡献可能会更大。  特斯拉增加 Dojo D1 ...
            0 0 1036
            分享
          •   如今,对于智能汽车的用户们来说,通过后期的系统软件更新,汽车厂商们往往能够逐步完善和提升车主们的使用体验,为他们带来更多的全新功能。人体近日,智车派注意到,有消息指出,特斯拉已经向其内部员工推出了新的软件系统更新,本次更新中包括大量的全新功能和特斯拉汽车系统的UI升级。  根据介绍,本次系统更新之后,特斯拉汽车将可以为用户提供两种不同的字体大小,帮助使用者更好地阅读屏幕内容;在设置和控制菜单中添加了搜索功能,可以帮助车主们更快地查找到自己需要的信息;在其导航系统中改进了“兴趣点”,能够直接展示对应地区的图片和其它信息。此外,此次更新之后,特斯拉车主们还可以调整亮度和加速模式等设置,或执行切...
            0 0 954
            分享
      • 51testing软件测试圈微信