码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-09-13 16:18:09      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:knn   ebe   端口   rsn   gyp   rtt   atm   exe4j   tmc   

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

自动化测试的主要分为接口自动化以及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:多个参数的时候以什么分割列(最好不要分割)

技术分享

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

技术分享

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

标签:knn   ebe   端口   rsn   gyp   rtt   atm   exe4j   tmc   

原文地址:http://www.cnblogs.com/ninanie/p/7514499.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!