接口测试如何实现参数化(Jmeter实现接口测试)

seosqwseo2个月前 (08-05)测评日记30

一、为什么要做接口测试

如何做接口测试?

1、接口测试需要围绕测试计划实施。接口测试重点是:api文档分析、用例设计。具体接口应用工具主要根据后台协议和测试计划测试工具来定,可使用工具如:postman、jmeter、requests、抓包(fiddler、charles)。

2、可以使用postman软件进行接口测试,这里以较复杂的上传图片的接口为例进行测试,首先打开postman软件选择Post方式,输入后台接口调用地址。

3、接口测试因其不是针对普通用户,而是针对的另外一个系统组件,所以不能直接测试,需要使用工具测试,比如服务端http接口测试,常用的工具有jmeter、postman、httpclient等。

4、接口测试实际工作中一般分为以下两种实现方式:(1)基于工具实现接口测试,常见的接口测试工具如Postman、Jmeter等(2)基于代码实现接口测试,如Python+Requests黑马程序员的公开课上次把接口测试相关都讲清楚了。

5、对于接口测试,首先测试人员要懂代码,你只需要知道接口的作用是什么就可以了,其次,自己去读开发的代码。

我眼中的接口测试和接口自动化测试

当然,在接口自动化的基础上再做压力测试、稳定性测试等也会更方便。在这个前提下再评估接口自动化测试是否有必要,思路就会清楚一些。

前后端分离结构:现在很多系统都采用前后端分离架构,各服务之间更多的是通过接口来实现信息互通,对接口进行直接测试,可以更全面的覆盖各类测试场景。

就是使python去实现接口测试,说白了就是写一些测试逻辑。python去写,速度快,简单python也有很多自动化测试相关的工具。roboframework,是一个自动化测试框架,写自动化非常简单。

说简单的接口自动化大致三个步骤:a-发送请求;b-解析结果;c-验证结果为了方便起见,你应该自定义三个和业务相关的测试类:一个用来封装httpclient,用来发送请求的类,昌平java课程建议用于发送各类测试请求。

接口编写方便。方便调试接口。支持数据初始化。生成测试报告。支持参数化。robotframework优点关键字驱动,自定义用户关键字。支持测试日志和报告生成。支持系统关键字开发,可扩展性好。支持数据库*作。

什么是接口测试

什么是接口测试接口测试是测试系统组件间接口的一种方式,接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是检查数据的增删改查*作,以及系统之间的逻辑关系等。

接口测试是测试系统组件间接口的一种测试。主要用于检测外部系统与系统之间以及系统内部各个子系统之间的交互点。重点测试数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系等等。

接口测试和系统测试区别:接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。

接口测试的原理?

接口测试有的公司是归纳在集成测试里面,也有的公司会放在系统测试阶段,不过这个都没有什么区别,本质上接口测试就是通过某个功能模块对外暴露的一个接口地址传参进行测试。

你说的淘宝的接口测试应该就是对web服务的测试,其实原理就是你根据web服务的格式要求准备测试数据(xml文件),然后通过工具把请求发送的web服务器,然后验证返回的结果。

接口测试是测试系统组件间接口的一种方式,接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是检查数据的增删改查*作,以及系统之间的逻辑关系等。

什么是接口测试?

1、什么是接口测试接口测试是测试系统组件间接口的一种方式,接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是检查数据的增删改查*作,以及系统之间的逻辑关系等。

2、接口测试是测试系统组件间接口的一种测试。主要用于检测外部系统与系统之间以及系统内部各个子系统之间的交互点。重点测试数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系等等。

3、接口测试和系统测试区别:接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。

4、接口测试的原理主要是模拟客户端向服务端发送请求,服务器接收请求后进行相应的业务处理,并向客户端返回响应数据,检查响应数据是否符合预期。黑马程序员的公开课上次把接口测试相关都讲清楚了。

5、接口就是API,意思是应用程序编程接口。接口本质上是程序开发的函数和方法,提供参数和返回值。

6、API测试又称为接口测试,接口测试是功能测试的一种。

为什么做接口测试?接口测试能发现哪些问题

1、功能测试:接口是否满足了所提供的功能,相当于是正常情况测试,如果一个接口功能复杂时推荐对接口用例进行结构划分,这样子用例具有更好的可读性和维护性。

2、(1)能够提早发现bug,符合质量来控制前移的理念。(2)接口测自试低百成本高效益,因为接口测试可以自动化并且是持续集成的。(3)接口测试从用户度的角度对系统接口进问行全面检测。

3、测试的重点是检查数据的交换、传递和控制管理的过程,以及系统间的相互逻辑依赖关系等。

4、个人觉得如果团队有专人做接口测试,这种情况下接口测试定位到用来发现更多bug是没有问题的,如果没有发现bug那就需要仔细找找接口测试用例设计的问题。

二、软件测试该如何学习

一、学习路线图(点击图片即可放大,可清晰观看)

二、软件测试视频第一阶段-前置基础知识

1、学习目标:

可掌握的核心能力:

1.熟悉计算机相关概念;

2.掌握基础的测试理论;

3.熟练掌握HTML常用标签和语法规范;

4.掌握使用CSS定义网页样式;

5.掌握js的基本用法;

2、知识点:

1)计算机基础

计算机组成部分、*作系统分类、B/S和C/S架构、常用DOS命令、服务器域名

2)测试理论

软件测试的目的、软件测试定义、软件测试原则、产品质量模型、测试基本流程

3)HTML基础

HTML基础语法、标签属性、图片标签、超链接、锚点、表单

4)CSS基础

CSS基础语法、CSS四类选择器、常用文字属性、行高属性、边框、盒子模型、内外边距

5)JS基础

JS基础语法、JS引入方式

三、软件测试视频篇第二阶段-linux和数据库

1、学习目标:

可掌握的核心能力:

1.掌握Linux*作系统按照和配置;

2.熟练掌握Linux常用命令;

3.掌握数据库增删改查*作;

4.熟悉数据库索引、视图、事务、常见函数等高级功能;

5.掌握Redis的string类型、hash类型、set类型、list类型等基本类型和*作;

2、知识点:

1)LINUX(熟悉)

*作系统介绍、*作系统发展历史、CentOS图形界面、文件和目录、常用LINUX命令使用、vim文本编辑器的使用

2)数据库介绍(熟悉)

数据库基本概念、关系型数据库介绍、MySQL安装与使用、Navicat使用

3)SQL语言(重点)

数据表*作、数据*作-增删改查、条件查询、排序、聚合函数、分组、分页、连接查询、自关联、子查询、子查询演练

4)数据库高级功能(了解)

数据库设计、命令行*作数据库、函数、存储过程、视图、事务、索引、外键、用户密码

5)redis数据库功能(掌握)

掌握Redis的string类型、hash类型、set类型、list类型等基本类型和*作;

四、软件测试视频篇第三阶段-测试基础

1、学习目标:

可掌握的核心能力:

1.掌握测试的基本概念和测试常见分类;

2.熟练掌握黑盒测试用例设计方法,进行功能测试用例设计;

3.熟练掌握缺陷报告的编写;

4.熟悉测试管理工具禅道和JIRA的使用

5.掌握项目测试流程;

6.掌握Web项目功能测试分析和用例编写;

7.熟悉测试计划,测试方案,测试报告的核心内容

8.掌握功能测试与数据库的关系

9.掌握Fiddler工具的使用

2、知识点:

1)软件测试理论

软件测试的分类,软件开发模型和测试模型,软件的质量模型,测试用例的定义和要素

2)测试用例设计

等价类方法、边界值方法、因果图、判定表、状态迁移法、正交、场景

3)缺陷管理

缺陷定义、缺陷的判定标准、缺陷报告、缺陷跟踪流程

4)Web项目实战

搭建项目的测试环境,如何快速熟悉项目,项目的测试流程,测试计划和方案,功能测试分析,状态迁移法的使用,流程测试分析,非功能测试分析,测试报告编写,Fiddler抓包

5)App项目实战

6)测试管理工具

禅道的使用,JIRA的使用

五、软件测试视频篇第四阶段-编程+数据结构

1、学习目标:

可掌握的核心能力:

1.掌握Python基础语法,具备基础的编程能力;

2.建立编程思维以及面向对象程序设计思想。

2、知识点:

1)Python开发环境

Python开发环境的搭建、Pycharm使用

2)Python基础

变量以及变量的类型、标识符和关键字、变量名命名方式、算数运算符、变量数据类型转换、输入和输出、注释、if语句基本格式、if…else…语句、if…elif..else语句、逻辑运算符、比较关系运算符、运算符优先级、while循环语法格式、while嵌套应用、break的用法、continue的用法、列表概念及*作、元组概念及*作、字典概念及*作、字符串概念及*作、**概念及*作、for循环及for…else用法、函数的基本语法、函数执行流程、文档注释、带参数的函数、带返回值的函数、函数的嵌套调用、匿名函数、递归函数、局部变量和全局变量、引用、文件的概念、文件的打开与关闭、文件读写,以及文件定位读写、文件、目录相关*作

3)面向对象

面向对象介绍、类和对象的概念、魔术方法的意义及作用、对象成员的访问控制权限、继承的概念及意义、继承、多层继承和多继承、多态的概念以及应用、类属性和实例属性、实例方法、类方法、静态方法、设计模式:单例模式

4)异常处理

理解异常的作用、捕获异常、异常的传递规则、自定义异常

5)模块和包

模块和包的概念、__all__的用法、import语句用法、from...import...用法、from...import*用法

六、软件测试视频篇第五阶段——WEB自动化

1、学习目标:

可掌握的核心能力:

1.能够熟练搭建Web自动化测试环境;

2.熟练掌握元素的定位方法和元素*作;

3.掌握鼠标键盘*作及HTML特殊元素的处理;

4.掌握使用UnitTest管理自动化测试的脚本;

5.熟练掌握PO模式的设计思想,并能够对页面进行封装;

6.掌握数据驱动的实现方式;

7.掌握日志的相关概念,以及日志的收集处理;

8.掌握在实际的项目中如何灵活运用自动化的相关技术。

2、知识点:

1)WEB自动化入门

自动化测试的理论知识、主流的Web自动化测试框架介绍、Selenium的发展历史及工作原理、元素查看工具使用、环境搭建

2)WEB自动化基础

元素基础定位方法、Xpath和CSS元素定位方法、元素常见*作、浏览器*作方法、鼠标键盘*作、显示等待和隐式等待、HTML特殊元素处理、窗口截图、验证码处理

3)WEB自动化中级

UnitTest框架、Fixture、UnitTest断言、参数化、测试报告

4)WEB自动化高级

PO模式、数据驱动、日志处理

5)项目实战

自动化测试流程、项目自动化框架设计、自动化代码实现

七、软件测试视频篇第六阶段——移动自动化

1、学习目标:

可掌握的核心能力:

1.掌握移动端APP测试特性;

2.能够熟练搭建移动自动化测试环境;

3.熟悉appium的工作原理;

4.熟练掌握ADB工具的使用;

5.熟练掌握元素的定位方法、元素*作和手势*作;

6.掌握单元测试框架pytest的使用;

7.掌握YAML数据读写;

8.掌握使用allure生成测试报告;

9.熟练掌握PO模式的设计思想;

10.掌握数据驱动的实现方式;

11.掌握Git的使用方式;

12.掌握Jenkins持续集成的环境配置;

13.掌握在实际的项目中如何灵活运用移动自动化的相关技术。

2、知识点:

1)移动自动化特性

APP应用系统架构、测试环境及发布平台、APP敏捷开发模式、APP应用测试要点、业务功能测试、兼容性测试、安装卸载升级测试、交叉**测试、Push消息测试、性能测试、用户体验测试、稳定性测试

2)移动自动化基础

移动端测试分类及特点、ADB命令及Monkey使用、appium环境搭建、appium工作原理

3)移动自动化中级

APP和手机系统*作、元素定位、元素*作、高级手势*作、混合APP测试、PyTest测试框架、定制测试报告、YAML数据读写

4)移动自动化高级

PO模式、数据驱动、Git、Jenkins持续集成

5)项目实战

APP项目实战

八、软件测试视频篇第七阶段——接口测试

1、学习目标:

可掌握的核心能力:

1.掌握接口及接口测试相关概念;

2.掌握使用Postman进行接口测试;

3.熟练掌握数据库的基本*作和事务*作;

4.掌握requests库使用及脚本封装;

5.掌握接口测试框架的设计和封装;

6.掌握使用持续集成工具管理接口测试脚本;

7.掌握在实际的项目中如何灵活运用接口测试的相关技术。

2、知识点:

1)接口测试基础

接口及接口测试概念、HTTP协议、接口规范、项目环境说明、接口测试流程

2)Postman实现接口测试

Postman介绍和安装、Postman基本用法、Postman高级用法、Postman测试报告、项目实战

3)数据库*作

数据库介绍、数据库基本*作、数据库事务*作

4)代码实现接口测试

Requests库、集成UnitTest、接口测试框架开发、项目实战

5)持续集成

持续集成介绍、Git、Jenkins、持续集成之Postman、持续集成之代码

6)接口测试扩展

Mock测试、接口测试总结

九、软件测试视频篇第八阶段——性能测试

1、学习目标:

可掌握的核心能力:

1.能够熟练搭建性能测试环境;

2.掌握性能测试基础理论;

3.掌握Jmeter常用组件使用;

4.掌握Jmeter编写和录制性能测试脚本;

5.掌握基于jmeter实现单一和混合场景搭建;

6.掌握思考时间、事务、逻辑控制器在性能测试场景的应用;

7.掌握Jmeter常用性能插件进行图表分析;

8.掌握Linux服务型性能监控方法和指标;

9.掌握数据库监控和调优的常见方法。

2、知识点:

1)性能测试基础

性能测试理论、性能测试分类、性能测试常用指标、性能测试流程

2)性能测试工具

常用性能测试工具、Jmeter环境搭建、Jmeter功能概要、元件作用及执行顺序、线程组、参数化、断言、关联、连接数据库、逻辑控制器、定时器、分布式、测试报告

3)项目-接口性能测试

项目API文档分析、接口清单梳理、接口脚本设计、并发数据计算、逻辑控制器项目应用、单一场景搭建、常用响应图表插件及应用

4)项目-web性能测试

脚本录制、正则过滤、cookie管理器、事务控制器、思考时间、混合场景搭建、web性能脚本执行与分析

5)性能测试调优

windows服务器性能监控、linux服务器性能监控、性能测试报告

十、软件测试视频篇第九阶段——综合项目实战

1、学习目标:

可掌握的核心能力:

1.掌握功能测试在真实的项目中如何实施;

2.掌握基于Selenium的Web自动化测试框架搭建和使用;

3.掌握基于Appium的APP自动化测试框架搭建和使用;

4.掌握使用工具实现接口测试;

5.掌握基于Python+Requests库的接口自动化测试框架的搭建和使用;

6.掌握Locust性能测试框架的使用;

7.掌握如何对APP进行性能测试;

8.掌握在实际的项目中如何灵活运用相关测试技术。

2、知识点:

1)项目介绍

项目简介、项目架构

2)功能测试

功能测试设计思路、自媒体端测试、后台管理端测试、用户APP端测试

3)UI自动化测试

Selenium Grid、搭建自动化测试框架、编写自动化测试脚本

4)接口测试

接口测试流程、基于工具的接口测试、基于代码的接口测试

5)性能测试

Locust框架、APP性能测试

三、Jmeter实现接口测试

利用Jmeter做接口测试怎么做呢?过程真的是超级简单。

明白了原理以后,把零碎的知识点填充进去就可以了。所以在学习的过程中,不管学什么,我一直都强调的是要循序渐进,和明白原理和逻辑。这篇文章就来介绍一下如何利用Jmeter做接口测试的流程,主要针对的是功能测试。暂不涉及到自动化测试和性能测试的内容。

一把来说,主要的步骤都大差不差。

第一步:通过分析API文档和需求文档提取接口清单。

也就是说,接口测试工作人员工作的开始就是从API文档和需求文档开始的。所以进入公司的第一件事情就是要拿到API文档和需求文档来了解,来看,来分析。从其中提取接口清单的话,主要是因为API文档中有很多冗余,不必要的信息。这些信息可能对于开发人员是有用的,但是对于我们测试人员是没有用的,所以要去除冗余,提取关键信息。

那么怎么提取呢?方法也很简单,从功能模块和方法模块对API文档中的内容进行提炼,提炼的关键是接口三要素:url+方法+参数+返回值。我的建议是可以先将所有的url提取出来,基本上一个url就是对应一个接口的,这样一条线把整体拎起来,就感觉混*的局面清晰多了。

当然工作中,有的时候我们是可以直接拿到接口清单的,因为清单这个事情一个团队做一份就好了,并不是说要每个人都做一份。但是我们自己得会,得有这个能力。之前看到过一个面试题,问的是,如果没有API文档,怎么做接口测试?

其实问的就是如果没有API文档,应该怎么提取接口清单的问题。很简单,根据需求文档和原型图来提取。有的公司不正规,确实是没有API文档的。或者有的公司API文档写的不规范,那提取的时候,就很考验测试人员的经验和能力了。所以如果能找到遵循restful风格写的优秀API文档,那就好了,提取的时候很方便。

第二步:针对接口清单,做单接口测试和关联接口测试。

在实际测试过程中,单接口测试和关联接口测试的时间是不一样的,这涉及到业务逻辑测试和功能点测试等。但是在测试的时候,他们的逻辑和方法是类似的。

当然这里主要介绍的是单接口测试,因为单接口测试时会考虑各种可能的情况,而关联接口测试一般是建立在单接口没有问题的前提下的。换个角度来说,就相当于是两个层次,单接口测试是基础,而关联接口测试是拔高。

那么具体应该怎么做呢?比如我们这里已经选定而来某一个接口来测试。

首先,根据选定的接口来搭建测试框架。

接口不是什么大不了的事情,无非就是url、方法、参数、返回数据这四块。这样就意味着,一个接口的框架是固定的,只不过每次传输的数据和返回的数据可能会不一样而已。所以我们要做的第一步就是搭建测试框架。

那么怎么搭建呢?这里就要用到从API文档中整理出来的接口清单和Jmeter了。从接口清单里,可以拿到当下接口的url+方法+参数+预期返回数据。这就是我们搭建测试框架的依据。接下来用Jmeter搭建。

首先需要打开Jmeter,然后基于测试计划,创建线程组,基于线程组创建HTTP请求。考虑到单接口测试,一个框架,要测试N多个数据,而且后面的接口可能也要用到同样的ip地址、同样的content-type,所以一般会先创建一个HTTP请求默认值,将一些可能会重复用到的信息填进去,比如说端口号、协议之类的。如有必要还需要添加HTTP信息头管理器,放一些user-agent、content-type等内容。

好的,有了这两个基础就可以来创建HTTP请求。在新的请求里,已经填写的端口号呀、ip地址呀之类的就无需填写了,只需要填写方法之类的即可。那么搭建框架在哪里搭建呢?一般会考虑para或者body里。比如说,要提交一段json格式的数据,那么就要用body(消息体)来提交,如下图所示。

将从接口清单里拿到的json数据填写到消息体数据里,然后将需要不断传入的数据进行参数化设置,那搭建测试框架就算是完成了。接下来只需要把数据一条一条传入进行测试即可。

那么如何把数据进行传入呢?

其实我们在下面的这篇文章里已经介绍了,传入数据的方法有四种,但主要使用的还是csv data set config和函数。做功能接口测试,用csv就足够了。那么具体怎么用呢?

星空下:软件接口测试工具Jmeter使用核心详解12赞同· 0评论文章

基于当前的线程组或者请求创建CSV数据文件配置组件。如果这份数据只有这一个请求会用,那么就基于请求创建即可。如果这份数据会被这个线程组里的多个请求使用,那么就基于线程组创建。

创建了以后就需要填入文件了呢?可是文件在哪里呢?这个时候就要稍微停一下jmeter的*作,先去针对当前接口设计测试用例并形成有关文档了。有关于功能接口测试的用例设计,我们之后会专门用一篇文章来介绍,这里先带过。这是因为设计测试用例是做测试过程中核心的一步。

在测试用例设计完之后,可以将其保存在一个txt文档里,采用utf-8编码,保存到Jmeter脚本的同一父目录下。然后按照上面那篇文章里的设置方法进行设置即可,注意路径可以采用相对路径,便于数据文件的拷贝和使用。

csv组件设置好以后,数据源有了,变量名有了,变量名的赋值也有了,接下来就只剩引用参数就可以了。在测试框架里需要引用参数的地方引用,引用的格式是${参数名}。到这里,针对于某一个接口的测试工作就准备完成了。

然后在Jmeter里面添加查看结果树组件,执行请求,依次查看结果。看一看返回的数据和我们的预期结果是否一致,不一致,那可能就是一个bug。

做一个小小的总结吧,用jmeter做功能接口测试,其实很简单的。逻辑和原理都是类似的,如果遇到新的项目,可能说会用一些新的组件而已,那百度一下几分钟的事情。在学习软件测试的时候,重要的就是不要怂,不要看起来说怎么要学的东子这么杂这么多,只要能够拎出其中的线索和主干,然后把一些零碎的点给组装上去,就会感觉,哇,忽然之间,好有条理。

相关文章

TCL电视75V8E使用反馈分享

TCL电视75V8E使用反馈分享

很多小伙伴在关注TCL电视75V8E怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看吧。...

大疆DJI怎么样

大疆DJI怎么样

很多小伙伴在关注大疆DJI怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看吧。...

南孚5号电池40粒五号碱性质量测评好不好

南孚5号电池40粒五号碱性质量测评好不好

很多小伙伴在关注南孚5号电池40粒五号碱性怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看吧。...

科大讯飞智能办公本Air7.8英寸电子书阅读器口碑好不好

科大讯飞智能办公本Air7.8英寸电子书阅读器口碑好不好

很多小伙伴在关注科大讯飞智能办公本Air7.8英寸电子书阅读器怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品...

大疆DJI质量测评好不好

大疆DJI质量测评好不好

很多小伙伴在关注大疆DJI怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看吧。...

ulanzi优篮子VL49怎么样?质量测评好不好用?

ulanzi优篮子VL49怎么样?质量测评好不好用?

很多小伙伴在关注ulanzi优篮子VL49怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看吧。...