自动化测试第一节---接口测试

本节课注册讲解接口测试的内容

自动化测试的主要分为接口自动化以及UI自动化

UI自动化测试分为:WEB端自动化、移动端自动化

接口测试的必要性:发现前台测试发现不了的问题、检查系统的异常处理能力、检查系统的安全性和稳定性

接口测试的用例设计主要覆盖面:

通过性验证:确保正常输入是,接口正常工作

参数组合:多个参数时,组合输入参数检查接口返回结果是否符合接口文档描述

接口安全:主要有绕过验证、绕过身份验证、参数加密验证、密码复杂性验证

接口异常性验证:主要异常类型:必传非必传、参数类型、入参长度

根据业务逻辑设计用例

常用的接口测试工具:Postman、Jmeter、SoupUI

基本概念定义:

1、接口:分为程序内部接口和系统对外接口,我们常做的接口测试主要指系统对外接口的测试,即测试本系统与外部系统之间的交互点,测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等

2、前端:如web端的网页以及APP端的页面,负责前台页面的显示

3、后端:负责后台的业务逻辑、功能等的处理,前端通过接口调用实现与后台的交互

4、接口分类:webservice接口和http api接口,其中:

webservice接口:走soap协议通过http传输,请求报文和返回报文都是xml格式,可以使用soupui工具进行模拟测试

http api:走http协议,常用的请求方式有GET和POST,通过路径来区分调用的方法,请求报文一般都是key-value形式的,返回报文一般都是json串

5、json:通用数据类型,什么语言都认识他,所有接口返回的都是json串,json串中字符串类型的参数值必须使用双引号,其他类型可以不添加,如:

例:{"name":"nina","data":1212}

6、GET请求:主要用来获取数据,可以直接在浏览器输入

7、Post请求:主要用来发送数据,如登录时需要传参,需要借助工具发送

8、接口规范文档:接口测试的依据,主要包含接口说明、调用url、请求方法、请求参数说明(参数名、参数类型)、返回参数说明

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

10、http状态码:发出http请求,响应中会有状态码,常用状态码如下:

2开头的都表示这个请求发送成功,200代表这个请求发送成功且服务器也返回了

3开头的代表重定向,302代表把这个请求重定向到别的地方了

400代表客户端发送的请求有语法错误,401代表访问的页面没有授权,403表示没有权限访问这个页面,404代表没有这个页面

500代表服务器内部异常,504代表服务器端超时,没返回结果

11、cookie:存在于本地的一个文件,如保存登录信息(加密后)

12、seesion:存在于服务端,如cookie和seesion相匹配时实现自动登录

http接口测试:

1、直接在浏览器中输入拼接后的url,格式为url?param1=value&param2=value【问号前面是接口请求url,后面是请求的参数名和参数值,多个参数用&来连接】

例:https://i.cnblogs.com/EditPosts.aspx?opt=1

2、如果入参是json串、需要添加header、需要添加cookie、需要上传文件时,则要通过工具进行测试,如Postman和Jmeter

接口测试工具常用方法:

Postman

1、GET请求,入参为key-value格式:

2、Post请求,入参是json类型:

3、GET请求,需要添加header,Content-Type application/json

4、Post请求, 需要添加cookie,token token是写死的token12345

5、Post请求,向服务器指定目录传送文件

Jmeter---开源性能测试工具(接口测试,压力测试)

1、新建线程组

打开Jmeter工具,右键点击测试计划,选择添加->Threads(Users)->线程组

线程数:设置最大并发值

Ramp-Up Period(in second):多少秒内启动并发数,0表示同时执行

循环次数:循环次数表示一个线程执行的次数,默认配置为1,表示执行完毕后不循环,勾选永远表示永久循环

调度器:勾选后,支持按调度器配置,其中持续时间和启动区间任选其一,不要同时选(可用于稳定性测试)

启动延迟(秒):多长时间后启动

2、添加http请求&添加查看结果树

右键点击线程组,选择添加->Sampler->HTTP请求

右键点击线程组,选择添加->监听器->查看结果树

3、添加http header管理器

右键点击线程组,选择添加->配置元件->HTTP信息头管理器

3、添加http cookie管理器

右键点击线程组,选择添加->配置元件->HTTP cookie管理器

4、添加响应断言

断言:用来检查返回结果是否正确

右键点击需要添加断言的请求,选择添加->断言->响应断言

模式匹配规则:包括和匹配支持正则表达式,Equal和Substring不支持正则表达式,包括和Substring表示返回的结果包含输入的内容,匹配和Equal返回的结果完全匹配输入的内容

要测试的模式:需要和返回结果进行对比的内容

Jmeter操作mysql 

1、导入jdbc的jar包

2、创建数据库连接配置,mysql的url、端口号、账号、密码

右键点击线程组,选择添加->配置元件->JDBC Connect Configuration

Variable Name:配置数据库连接池的名称

Jmeter数据库驱动列表:

3、输入sql语句

新建线程组,右键点击线程组,选择添加->Sampler->JDBC Request

Query Type:选择sql语句的类型

4、查看sql执行结果

4、查看响应时间(压力测试

右键点击线程组,选择添加->监听器->聚合报告

执行数据库查询后,可以查看聚合报告,检查数据库查询的处理时间,(压力测试一般运行10到15分钟)

TPS(Throughput):每秒钟处理事物数 ,tps越高表示效率越高
sample:总共发出的请求数
average:每个请求的平均响应时间,单位为毫秒
error:压测的错误率

Jmeter参数化

参数化:把需要经常变的值,改成可以变化的或者是提前设置好的一些值

Jmeter参数化的方式:用户定义的变量、函数生成器、从文件中读取

1、用户定义的变量:定义一个参数,且这个参数只会对应一个值,方便批量修改应用了这个参数的请求

右键点击线程组,选择添加->配置元件->用户定义的变量

名称是这个参数变量的名称,也就是脚本里面取的值,值就是参数变量的值,在取参数化的值的时候,使用${balance},balance即变量名称

在原本的参数值位置填写参数化的变量名称

2、函数生成器:参照一定的规则生成数据,比如说生成一些随机数

点击选项->函数助手对话框

常用的功能:

随机数__Random,可以在你指定的一个范围内取随机值

取当前时间__time,日期格式如:yyyy-MM-dd HH:mm:ss

取唯一id__UUID,每次会生成一个随机的uuid,都是唯一的

点击生成,生成对应的参数化变量名

3、从文件中读取:事先写好一些数据,然后从文件中读取

添加一个CSV Data Set Config:

右键点击线程组,选择添加->配置元件->CSV Data Set Config

Filename:输入需要进行参数化的文件的路径

Variable Names:为文件内容对应的参数化名称

recycle:读完后是否重新读取

stop:读完之后是否停止线程

delimiter:多个参数的时候以什么分割列(最好不要分割)

在原本的参数值位置填写参数化的变量名称

时间: 2024-10-11 09:48:20

自动化测试第一节---接口测试的相关文章

火云开发课堂 - 《Shader从入门到精通》系列 第一节:Shader介绍与工程搭建

<Shader从入门到精通>系列在线课程 第一节:Shader介绍与工程搭建 视频地址:http://edu.csdn.net/course/detail/1441/22665?auto_start=1 交流论坛:http://www.firestonegames.com/bbs/forum.php 工程下载地址:请成为正式学员获取工程 课程截图: 项目实例: 版权声明:本文为博主原创文章,未经博主允许不得转载.

杨森翔:春节文化大观上编 第三章 春节古诗词 目录 第一节:春节诗词概述 一、 除夕诗词概述 二、元日诗词概述 三、 元宵诗词概述 第二节:春节古诗词拾萃

杨森翔:春节文化大观上编 第三章 春节古诗词 目录 第一节:春节诗词概述 一. 除夕诗词概述 二.元日诗词概述 三. 元宵诗词概述 第二节:春节古诗词拾萃 一.腊祭诗词 二.祭灶诗词 三.除夕诗词 四.元旦诗词 五.人日诗词 六.元宵诗词 第一节:春节古诗词概述 中国的春节,作为除旧迎新的节日,时间相当长,从年前的腊月二十三,天空中就似乎弥漫了节日的气息.这种节日的气氛,在保持传统风俗较好的地方,甚至会持续到二月二龙抬头的时候,但欢度春节的高潮,应该说是自除夕始一直到上元之夜.因此,历代歌咏和反

第一节课作业

1 C语言是在国内外广泛使用的一种计算机语言.其语言功能丰富.表达能力强.使用灵活方便.既具有高级语言的优点,又具有低级语言的许多特点,适合编写系统软件.其功能强大,不仅用在计算机上广泛用在电子,机械等方面上,而且,所有的windows,Unix,Linux,Mac,os/2,无一例外,哪一个不是C语言写的?很多新型的语言如,C++,Java,C#,J#,perl...都是衍生自C语言.掌握了C语言,可以说你就掌握了很多门语言. 学习C程序这门课一年了,这是我们学的第一门专业课,在大学里C语言不

第一节,C语言入门

1.标示符:    命名规则:    1.只能由字母.数字.下划线组成    2.不能数字开头    3.不能与关键字重名    4.严格区分大小写    命名规范:     1.起一个有意义名字     2.驼峰标示2.注释 注释: 对代码的解释说明,是写给程序看的,方面程序员之间交流 特点: 注释是不参与编译 /* 这里面可以写 */ 多行注释 // 这是一个单行注释 只有这一行是注释,只有 两个斜杠后面才是注释内容 /* */ command + / 注释或取消注释 多行注释是可以嵌套单行

MFC第一节-windows程序内部运行机制

一.窗口 设计窗口类时: 1 typedef struct _WNDCLASS{ 2 UINT style; //如水平.垂直变化是否重绘,禁用Close,检测双击 3 WNDPROC lpfnWndProc;//窗口过程函数句柄 4 int cbClsExtra;//类附加内存 5 int cbWndExtra;//窗口附加内存 6 HANDLE hInstance;//实例句柄 7 HANDLE hIcon;//图标 8 HCURSOR hCursor;//光标 9 HBRUSH hbrBa

linux基础知识第一节

用户接口: 是一种独特的应用程序,能够为用户提供启动其它应用程序的的机制 cli:命令提示符,用户输入要执行的命令即可, shell: 外壳 sh ,csh ,ksh ,   bash, zsh , tcsh gui: 通过点击操作来启动应用程序 gnome,  mainframe  大型机 多用户操作系统    多终端   终端:设备,显示器,鼠标,键盘 虚拟终端 表示:/dev/tty# ctrl-alt-f(1-6) 物理终端(控制终端)console 串行终端 伪终端 /dev/pts#

VUE2.0实现购物车和地址选配功能学习第一节(来源--慕课网河畔一角)

第一节  vue知识 vue-resource:和后台交互的一个插件,实现get.post和jsonp等功能.(替代jQuery) vue特点: 1.易用:通过创建vue实例,{{}}绑定数据十分方便,如果是jQuery还要获取值,设定十分繁琐 2.灵活-渐进式 ①渲染字段:②公共头部和公共尾部做成组件:③单页面会用到:④管理组件状态,vuex⑤使用构建工具完结项目 3.高效 ①16kb min+gzip的运行大小:②超快虚拟DOM:③最省心的优化 vue基础指令介绍: 1.指令的使用: v-m

photoshop第一节:认识ps

Photoshop 第一节: 1. 认识ps: (讲ps前说说我们所见过的图片)电脑呈现的图像类型分为两大类: 一类称为点阵图(当我们放大图片会看到像马赛克模糊的阵容,而那些方块叫像素点,每个像素点表示一种颜色.由方块像素点组成的阵列图片,我们叫它点阵图,比如我们上网百度的图片,壁纸,或手机拍出来的照片等等). 一类称为矢量图(放大不会模糊,因为它并不是由像素点组成.而是通过数学公式计算它的.一般要支持的矢量图格式的软件才能打开,比如插画师用adobe公司的AI软件作插画,). 而Photosh

C#第一节课作业,HelloWorld

通过第一节课的学习,我们掌握了一些C#的基本知识.无论是C#的名字的由来还是有关Hello World和Console都让我受益匪浅. 回到家后,我首先实验了一下最简单的Hello World▼ 成功了√ 然后,我实验了一下省去System的写法▼ 成功了√ 这之后我又试了一下同文件中的调用▼ 成功了√ 之后是调节字和背景的颜色▼ 成功了√ 之后我尝试了不同文件的调用▼ 成功了√ 然后我试了下分步执行▼ 成功了√ 然后我设置了变量▼ 成功了√ 最后我试验了一下ResetColor的用法▼ 成功了