接口测试

1、接口测试:接口(重点)
是什么:是数据交互的入口和出口,是一套规范、标准
为什么----用接口时的缺点:①研发标准不统一②研发周期长 ③可扩展性差----- 用接口的优点①统一设计标准 ②前后端开发相对独立 ③扩展性灵活 ④前后端都可以使用自己熟悉的技术
怎么用  ①接口规范是架构师制定的(API文档) ②前端和后端开发时共同参考的依据

2、接口测试:接口测试(重点)
是什么:测试后端实现是否符合接口规范
为什么:程序安全/效率
怎么用(实现流程):模拟客户向服务器发送数据,然后查看相应----要素1 定位服务器资源(通过URL实现https://www.baidu.com/  https://127.0.0.1:8000/资源路径)-----要素2:模拟用户提交数据----要素3:查看相应的结果是否符合预期
URL 定位服务器资源 + 提交数据 + 查看响应的数据是不是预期的
接口测试分类:①web接口测试  测B/S架构的 ----服务器接口测试:测试自己公司写的程序  ----第三方接口测试:测试别的公司是实现的接口    ②模块接口测试  主要测C/S架构(C/S越来越少了)

3、接口测试:环境搭建
是什么:搭建接口测试的测试环境,运行程序
怎么用:1)运维或开发实现程序部署 正常进行  2)自己搭建
3.2.1安装python  3.2.2安装依赖:pip install -r requirments.txt -i https://pypi.douban.com/simple 3.2.3 启动项目:python run_server.py   3.2.4测试:http://127.0.0.1:8000/apl/departments 如果正常相应数据了,那么程序安装启动正常       3)学生管理系统简介  ----核心:学生表 班级表 学院表----操作:3张表的增删改查

4、接口测试:插件
是什么:测试接口的测试工具
    火狐----RESTClient
    谷歌----POSTman;
    Java 实现的测试工具Jmeter(重点)
为什么:测试工具功能强大一些,使6测试更快捷方便
怎么用:火狐安装RESTClient;谷歌安装POSTman;注:二者下载时都要注意版本,google插件资源下载被屏蔽了 安装提前下载完毕的 

5、接口测试:RESTful风格(重点)
是什么:RESTful风格:开发测试时 大家都会遵守一些默认的规范,这些都是约定成俗的,大家的习惯做法,非强制性的RESTful风格就是这些习惯的一种。RESTful风格中规范了,URL的实现方式,提交的数据的实现方式,响应的数据的实现方式
为什么:为了程序的易读性和易维护性
怎么用:RESTful风格是约束操作的四种操作以及三个要素(记住)
增:
        ①URL+POST
        ②提交数据  常用方式a:URL?键=值&键=值  常用方式b:JSON格式s --------设置HTTP信息头 content-Type application/json;charset=utf-8     键=值&键=值 
        ③200 | 201 + 添加的记录
:①URL+DELETE ②提交数据。键=值&键=值 ③200|204 +无响应内容
改:①URL+PUT(更合适) ②提交数据。a:键=值&键=值  b:JSON格式s ③200 | 201 +修改后那条记录
查:①URL+GET ②常用方式:URL?键=值&键=值 ③200 +一条记录或多条记录
404 路径有误   505 服务器异常

get和post的区别:1、post安全性高 2、post提交的数据量没有大小限制。3、get效率高

6、接口测试:JSON
是什么:-----JSON是一种数据载体。----互联网本质就是数据传输 数据传输需要数据载体 eg:页面信息就是存储在html这种数据载体中的。
-----HTML格式
       
           
            hello
           
           
                hello world
           
       
-----xml格式
   
        huluwa
        8
   

缺点:标签标记语言 有效数据占有率低
-----JSON优化数据传输
        {"title":"hello","font":"hello world"}
        {"name":"huluwa","age":"8"}
为什么:JSON传输数据效率更高,所有部分场景下使用JSON替换html和XML(ajax)。缺点:JSON语法描述性不及标签语言,所以部分场景还得使用html和xml,但是如果传递的是少量数据的话,可能使用JSON
怎么用:对象和数组可以嵌套使用
    语法:
    格式1(JSON对象):{"键1":"值1","键2":"值2"......}
    格式2(JSON数组):[值1,值2,值3......]
    格式复合: {"name":"huluwa","age":"8","aihao":["救爷爷","吐火","吐水"]}
                    [ {"name":"huluwa","age":"8"}, {"name":"aotuman","age":"10"}......]

7、接口测试实战  目的:RESTful风格练习
    a、安装并运行学生管理系统  
    b、获取并读懂接口规范
                从前期文档中提取接口清单
                API文档:application programing interface  应用程序编程接口
    c、逐一测试接口

总结:1、新增数据时,数据是JSON格式,必须设置浏览器的http请求头,不然会当成普通文本处理     
content-type application/json;charset=utf-8(记住)     
content-type:提交的内容类型     
application/json数据类型是json格式   大类型/小类型 img/jpg img/png.....      
charset=utf-8设置编码集 utf-8支持世界所有字符     -------2


jmeter

1、jmeter
是什么:jmeter是apache公司使用Java开发的一款测试工具
为什么:高效、功能强大   模拟一些高并发或多次循环等特殊测试场景
怎么用:
    a下载jmeter,解压缩
    b安装Java环境(jmeter和Java环境的关系 类似MP3文件和播放器关系)   注意 安装路径不能有中文字符 空格    安装了JDK+JRE
    c简单了解jmeter的目录结构  bin:存储了jmeter的可执行程序 比如启动程序    lib:存储了jmeter整合的功能(一些.jar文件的小程序)   
    d启动jmeter    启动方式一bin/apachejmeter.jar双击     *jmeter.bat windows下的启动程序   jmeter.sh linux下的启动程序
    e 编写一个jmeter版本的测试案例
作用-------接口测试       性能测试(内在--程序的算法)       压力测试(外在---外在负载)   web自动化测试    数据库测试(测试数据库)      Java程序测试
优点: 开源、免费;支持多协议;小巧;功能强大
缺点:a.不支持IP欺骗   b.使用JMeter无法验证JS程序,也无法验证页面UI,所以要须要和Selenium配合来完成Web2.0应用的测试
2、jmeter组件:线程组
是什么:
    进程:一个正在执行的程序就对应一个进程
    线程:进程中的执行线索(一个进程有多个执行线索)
    线程组:按照线程性质对线程进行分组
    并发执行:多个线程同时执行 特点:执行结束的顺序和线程的启动顺序不一定一致
    顺序执行:按照线程的启动顺序挨个执行
为什么:方便管理
怎么用:
    ①三者关系:进程有多个线程组,线程组可以有多个线程
    进程---测试计划
    线程组----线程组
    线程----线程组属性的线程数
    ②默认情况下,线程组中的线程是并发执行的
    每一个线程都要执行组内的http请求
    ③怎么设置线程组顺序执行
    勾选测试计划的第一个复选框(独立运行每个线程组)
    ④线程组练习 学院增删改查
练习:学生管理系统增删改查优化
    可以使用http请求默认抽取共同的ip 端口号 协议 编码集 等信息
    测试计划--->右击--->添加--->配置原件--->http请求默认值
    作用:通过复用属性简化实现,提高测试效率
线程组高级((初始化与销毁线程组)
    线程组属性:属性一 线程数---模拟用户数   属性二:时间值----在指定时间内启动所有线程   属性三:循环数----单个用户访问的次数
    调度器:1)循环次数设置为永远   2)设置启动延迟 x和持续时间y  在x秒后访问服务器 并且持续y秒   3)设置启动时间 M,和结束时间N   在M时开始访问,在N时结束-----2和3实现不能同时使用 否则矛盾了
jmeter组件:参数化概述(了解)
是什么:参数化就是动态的获取并设置数据
为什么:比如执行批量操作时,批量插入或批量删除,之前数据都是手写的,每执行完都需要修改一次,效率太低    参数化就是可以以程序代替人工获取并设置数据:安全+高效
jmeter组件:参数化实现之CSV Data Set Config(重点中重点)
是什么:jmeter参数化实现组件之一
为什么:通过这个组件可以动态获取并设置数据,实现类似批量添加操作((执行一次 将多条数据插入到数据库)
怎么用:
其他:CSV Data Set Config.....CSV数据配置          CSV-->逗号分割值文件格式

你可能感兴趣的:(接口测试)