zoukankan      html  css  js  c++  java
  • 自动化学习笔记之接口测试(一)

    一、前、后端的认识

    前端分为web端和app端,对于web端来说,使用的网页,打开的网站就是前端,web使用html,css,js来开发,APP端包括ios(object开发)和android(android开发),显示出来的页面就是前端

    后端也称为服务端,是和数据库打交道,处理业务逻辑的,一般都使用java,php,python这几种语言开发

    二、接口的认识

    1、系统对外的接口:比如要从别的网站或者服务器上获取资源或信息,别人不肯把数据库共享给你,他只能给你提供接口来使用他写的方法,从而达到数据共享的目的,比如APP,网址等在进行数据处理的时候就是通过接口调用

    2、程序内部接口:方法与方法之间,模块与模块之间的交互,比如BBS登录,开发A负责开发系统的发帖模块,而开发B是负责开发登录模块的,而发帖是依赖登录模块的,这两个模块有交互,就需要抛出接口,供内部系统调用,程序内部接口一般开发自测

    对前端页面各种操作实际也相当于在调用各个接口进行测试,那为什么还需要单独进行接口测试?

    三、接口的分类

    常用的两种接口webservice接口和http api接口

    webservice接口:走soap协议通过http传输,请求报文和返回的报文都是xml格式

    http api接口:是走http协议,通过路径来区分调用的方法请求报文都是key-value形式,返回报文一般是json串,所有的语言都可以get和post是最常用的两种请求方式

    get请求和post请求的区别:

    1、get长度有限制,post长度没有限制,这是基于以前的技术两种请求的区别,现在浏览器对get和post请求长度没有限制

    2、post请求比get安全

    3、post一般向服务端发送数据,get一般用于获取服务端数据

    4、post请求数据放在body里面,get请求数据放在url里面

    四、为什么要进行接口测试

    1、可以测试前端模拟不了的异常测试场景,比如测试支付功能,想测试服务端有没有校验订单的金额,想把订单改成负数或者零,这种异常测试情况在页面上点是测试不了的

    2、前端变动大,但是后端测试完了就不用变动了,只需测试前端UI即可

    五、接口用例设计

    通过性验证:首先肯定要保证这个接口功能是好使的,也就是正常的通过性测试,按照接口文档上的参数,正常传入,是否可以返回正确的结果。

    参数组合:现在有一个操作商品的接口,有个字段type,传1的时候代表修改商品,商品id、商品名称、价格有一个是必传的,type传2的时候是删除商品,商品id是必传的,这样的,就要测参数组合了,type传1的时候,只传商品名称能不能修改成功,id、名称、价格都传的时候能不能修改成功。

    安全性校验:

    1、绕过验证,比如说购买了一个商品,它的价格是300元,那我在提交订单时候,我把这个商品的价格改成3元,后端有没有做验证,更狠点,我把钱改成-3,是不是我的余额还要增加?

    2、绕过身份授权,比如说修改商品信息接口,那必须得是卖家才能修改,那我传一个普通用户,能不能修改成功,我传一个其他的卖家能不能修改成功

    3、参数是否加密,比如说我登陆的接口,用户名和密码是不是加密,如果不加密的话,别人拦截到你的请求,就能获取到你的信息了,加密规则是否容易破解。

    4、密码安全规则,密码的复杂程度校验

    异常验证: 异常的,也就是我不按照你接口文档上的要求输入参数,来验证接口对异常情况的校验。比如说必填的参数不填,输入整数类型的,传入字符串类型,长度是10的,传11,总之就是你说怎么来,我就不怎么来,其实也就这三种,必传非必传、参数类型、入参长度

    五、接口测试的方法

    接口测试实质就是功能测试

    1、使用浏览器测试,仅限于get请求,比如豆瓣API搜索图书接口

    浏览器直接输入URL地址,后面拼接参数测试,例如:https://api.douban.com/v2/book/search?q=MySQL&start=-1,&可以拼接多个参数

    2、使用postman工具

    例1、测试登录功能

    例2、添加学生信息

    例3、添加金币

    3、使用jmter测试接口

    补充如下两点,其他知识点回顾性能测试笔记

    1)响应数据中文乱码,可在jmeter.properties 配置文件中,设置sampleresult.default.encoding=utf-8

    2)jmeterbody里面中文显示不出来,可在jmeter.properties 配置文件中,把这几行取消注释

    以上均是测试http协议的方法,那怎么测试soap请求呢,使用soapUI工具,这里就不做详细介绍了(回顾性能测试笔记)

    六、cookie和session

    cookie:服务器把一些请求信息保存到浏览器里面,等下次再次请求时会跟随请求一块发送到服务器,以keyvalues形式保存

    session:身份验证,做安全校验,比如登录,需要把用户和密码进行加密生成session字符串这个字符串会在服务器存一个,如果客户端发送的session能和服务器的session匹配就验证成功,回话结束,session失效,下次登录新生成,需要保证session的一致性



  • 相关阅读:
    如何让自己拥有两年工作经验
    示波器入门使用方法
    模板显式、隐式实例化和(偏)特化、具体化的详细分析
    Dynamics CRM 2013 初体验(5):Business Rule
    Tomcat搭建
    岁月,时光,现实
    数据结构之链表单向操作总结
    iptables学习笔记
    知无涯者(The Man Who Knew Infinity)
    Dynamics CRM2016 Web API之Expand related entities & $ref & $count
  • 原文地址:https://www.cnblogs.com/luoqingqing/p/8159439.html
Copyright © 2011-2022 走看看