学习笔记-接口测试(postman、jmeter)

2023-09-20 14:50:52

目录

一、什么是接口测试

二、前端和后端

三、get请求和post请求的区别

四、cookie和session

五、接口测试的依据

六、HTTP状态码

七、通用接口用例

八、postman接口测试

九、Jmeter接口测试


一、什么是接口测试

通常做的接口测试指的是系统对外的接口,比如你需要从别的系统来获取到或者同步资源与信息,他们会提供给你一个写好的接口方法供你调用,比如常用的app,用户同步这些在处理数据的时候需要通过接口进行调用。

webService接口和http api接口是最常见的两种接口方式,后者最常用,采用http协议,有get 和post请求方法,返回的数据是json类型,接口测试也可以说是功能测试,通过调用接口从数据库中获取到数据,返回回来。

二、前端和后端

前端和后端如果说成客户端与服务端比较好理解,在浏览器上打开一个网页,打开一个管理系统,在一个APP上操作,这些都属于前端,他的作用就是显示页面,操作页面,而处理这些业务逻辑功能比如说页面上的非空校验,业务逻辑功能能都是通过后端来实现的,而前端和后端的交互正是通过接口来交互的。

三、get请求和post请求的区别

get请求接口的请求数据是放在url里面的,post请求接口的请求数据是放在body里面的,get请求可以在浏览器中直接访问,而post请求只能借助工具完成

四、cookie和session

cookie是存放在本地的一个健值对 对应的是key-value,session是存放在服务端的一个健值对k-v

五、接口测试的依据

接口规范文档,接口文档至少包括

1、接口说明 

2、调用url

3、请求方法(get\post)

4、请求参数、参数类型、请求参数说明 

5、返回参数说明 

六、HTTP状态码

每个发出去的http请求,都会返回一个状态码,用来标识这个请求是否成功,常见的状态码有以下几种:

1)200 2开头的表示请求成功

2)300 3开头的代表重点向

3)400 4开头的代表客户端发送的请求有语法错误

4)500 5开头的代表服务器有异常

七、通用接口用例

八、postman接口测试

1)get请求

    请求参数可以在url后面直接传参,多个参数用&符号,url?x=x&xx=xx

    header 用来传输一些额外的信息

例如:获取学生信息接口,postman测试操作截图

获取所有学生信息接口添加header信息,postman测试操作截图

2)post请求

 例如登陆接口,包含内容:post请求方式,请求url,参数在body处填写,点击send返回数据

添加学生信息接口(入参是json类型),包含内容,请求url,post请求,参数在body内选择raw填写json串

学生金币信息充值接口,包含权限认证需要添加管理员权限cookie,操作内容包含请求url,选择Headers添加cookie,body添加参数

获取所有学生信息接口,添加header信息,操作包含内容,请求url,header添加Referer

文件上传接口

 

九、Jmeter接口测试

1) jmeter查看结果树乱码?

到jmeter的安装目录bin目录下找到jmeter.properties,添加sampleresult.default.encoding=utf-8

重启jmeter

2)jmeter body data里面有乱码怎么解决?

到jmeter的安装目录bin目录下找到jmeter.properties,添加jsyntaxtextarea.font.family=Hack

重启jmeter

3)jmeter参数化

  •     用户定义的变量 

        线程组-》添加-》配置元件-》用户定义的变量,添加名称,值,引用变量填写${变量名}

  •    函数助数

       选项-》函数助手对话框,选择函数功能,例如__random、__time ,选择后点击【生成】,把生成的函数字符串拷贝到请求数据中 ,__time生成的是时间戳,时间戳就是从计算机诞生那一天到现在过了多少秒,如果要转换其他日期格式,在函数助手框中取值处填写再生成

  •    文件读取

       线程组-》添加-》配置元件-》CSV Data Set config

   

 4)jmeter压测指标

线程组-添加-聚合报告可以看到并发用户数、响应时间(越快越好)、tps(服务端每秒钟处理的请求数  越大越好)。

5)用JSON Path PostProcessor关联获取返回信息

  • 安装JSON Path PostProcessor插件
  • 请求-》添加-》后置处理器-》SON Path PostProcessor
  • 根据返回json参数中的对应数据进行提取,例如sign对应的k值是login_info即$.login_info.sign

 6)操作数据库步骤

1、安装mysql-connector-java-5.1.7-bin.jar,放到jmeter安装目录的lib目录下

2、测试计划-浏览,添加mysql-connector-java-5.1.7-bin.jar

3、线程组-添加-配置元件-JDBC Connection Configuration,填写数据库连接

4.线程组-添加-sampler-JDBC Request

选择操作类型,查询选择select statement 只限单条查询,如果多条查询可选择Callable Statement(不限格式)但除了最后一条sql,其他sql需要用;来结束, insert语句选择Callable Statement

更多推荐

2023年五一杯数学建模B题快递需求分析问题求解全过程论文及程序

2023年五一杯数学建模B题快递需求分析问题原题再现:网络购物作为一种重要的消费方式,带动着快递服务需求飞速增长,为我国经济发展做出了重要贡献。准确地预测快递运输需求数量对于快递公司布局仓库站点、节约存储成本、规划运输线路等具有重要的意义。附件1、附件2、附件3为国内某快递公司记录的部分城市之间的快递运输数据,包括发货

Smart Community(1)之设计规范

通过前面大数据开发相关知识的学习,准备做一个项目进行练习---我给他起了一个响亮的名字:基于HadoopHA的智慧社区服务平台设计规范:做一个项目之前肯定要先规定一些开发过程中的设计规范(一)数据埋点规范:数据埋点:是一种在软件、应用程序或网站中插入代码的技术,用于收集和跟踪用户行为和事件的数据。通过在关键位置插入代码

无人机航测没信号?北斗卫星来解决

无人机航测是利用无人机进行地理信息的采集和处理的航测方式。相比传统的航测手段,无人机航测具备更高的灵活性、更低的成本和更广阔的适应性。无人机航测可以应用于土地测绘、农业植保、城市规划、自然资源调查等多个领域,极大地提高了测绘的效率和准确性。不过,在无人机航测的使用越来越广泛的同时,其在无网弱网地区无法高精度航测的问题也

MySQL常见的性能优化方法技巧以及示例

MySQL常见的性能优化方法技巧以及示例MySQL是一种广泛用于管理和存储数据的关系型数据库管理系统。在处理大规模数据和高并发请求时,MySQL的性能优化变得尤为重要。本文将介绍一些常见的MySQL性能优化方法和技巧,以及相应的示例,帮助您提升数据库系统的性能。1.使用合适的数据类型方法:选择合适的数据类型来存储数据,

虹科分享 | 软件供应链攻击如何工作?如何评估软件供应链安全?

说到应用程序和软件,关键词是“更多”。在数字经济需求的推动下,从简化业务运营到创造创新的新收入机会,企业越来越依赖应用程序。云本地应用程序开发更是火上浇油。然而,情况是双向的:这些应用程序通常更复杂,使用的开放源代码比以往任何时候都包含更多的漏洞。此外,威胁行为者正在创造和使用更多的攻击方法和技术,通常是组合在一起的。

构建健壮的Spring MVC应用:JSON响应与异常处理

目录1.引言2.JSON1.轻量级和可读性2.易于编写和解析3.自描述性4.支持多种数据类型5.平台无关性6.易于集成7.社区支持和标准化3.高效处理异常综合案例异常处理方式一异常处理方式二异常处理方式三1.引言探讨SpringMVC中关键的JSON数据返回和异常处理机制。2.JSON2.1了解JSON数据格式JSON

【AWS 大赛】亚马逊云科技:2023 直冲云霄训练营入营考试报名与答题答案参考

目录一、报名(1)选择“解决方案架构师-助理级”(2)未登录先注册账号(3)登录(4)报名(5)报名成功二、答题(1)开始答题(2)添加小助手提供答题信息(3)活动日程(4)问题与答案参考一、报名(1)选择“解决方案架构师-助理级”官网报名地址:https://dev.amazoncloud.cn/certcamp(2

浅谈C++|STL之算法函数篇

一.遍历常用算法1.1for_each在C++中,for_each是一个算法函数,位于<algorithm>头文件中。它接受一个范围(容器或迭代器对)以及一个函数对象(函数指针、函数、lambda表达式等),用于对范围内的每个元素执行指定的操作。(遍历容器,,执行指定函数)以下是for_each的函数原型:templa

03_Bootstrap基础组件03

7表单7.1基本实例设置了.form-control类的表单元素,默认设置宽度属性为width:100%;。将label元素和表单元素包裹在.form-group中可以按照排好的样式进行展示。<formaction="#"method="post"><divclass="form-group"><labelfor="e

pytest-基础

一.使用pytest,默认的测试用例的规则以及基础应用1.模块名字必须已test_开头或者_test结尾2.测试类必须以Test开头,并且不能有init方法3.测试方法必须以test开头示例代码test_001.pyimportpytestclassTestCase:deftest_case(self):print("

浅谈C++|类的继承篇

引子:继承是面向对象三大特性之一、有些类与类之间存在特殊的关系,例如下图中:我们发现,定义这些类时,下级别的成员除了拥有上一级的共性,还有自己的特性。这个时候我们就可以考虑利用继承的技术,减少重复代码。一.继承基本语法语法:class子类:继承方式父类优点:减少重复代码子类也叫派生类,父类也叫基类代码:#include

热文推荐