接口测试学习笔记1

打印 上一主题 下一主题

主题 576|帖子 576|积分 1728

一、行业背景和测试分层
1、招聘需求
1)手工测试:业务需求、业务逻辑
2)主动化测试:业务逻辑 + 技术规范
  功能主动化  QTP、Selenium
  性能主动化  LoadRunner、JMeter
  接口主动化  Postman、Fiddler、JMeter、SoapUI...  
  手机主动化  adb monkey monkeyrunner Appium ...

2、分层的手工测试:黑盒测试、白盒测试、灰盒测试
1)黑盒测试:一样平常也称为功能测试,把测试的程序看作是一个黑盒子,在程序界面输入数据,进行操作,检查程序是否按照需求规格阐明书的规定正常实现。
阐明:投入产出比力低,就是编写用例发现的缺陷不是许多;
2)白盒测试:又称为结构测试,在单元测试阶段完成,对代码要求较高;
  通过检查代码来发现程序的错误,需要测试人员把握被测体系所用的编程语言,熟悉程序结构和处置惩罚过程,所以一样平常由程序员本身来做,在单元测试阶段应用较多。
阐明:现在需求量较小,常用于航空航天、医疗、银行等行业;
     比如神州6号飞船控制体系代码120万行,测试代码写了150万行;
     Win7操作体系5000万行,Linux体系2000万行;
     白盒测试精确度非常高,发现bug的修复成本非常低;
     让测试人员进行白盒测试,难以推广,要求很高。
3)灰盒测试:联合了白盒测试和黑盒测试的要素,是介于白盒测试与黑盒测试之间的测试。灰盒测试像黑盒测试那样,检查输出结果对于输入的数据是否正确;同时也像白盒测试那样,检查程序的代码,但这种检查不像白盒测试那样详细、完整,一样平常只对程序模块之间的调用、核心代码进行检查,在集成测试时经常接纳,一样平常也是程序员大量接纳。
阐明:在集成测试时接纳,取一个折中的办法。
3、测试金字塔模型
基本观点:应该有更多低级别的单元测试,而不但仅是通过用户界面运行高层端到端的测试。
整个测试分为三层:    UI   Service  Unit
1)UI层(User Interface 用户界面)
 在用户界面上进行操作完成测试--黑盒测试(功能测试)
2)Server层:服务层测试
 重要在集成测试阶段,测试模块间的调用关系
(一个模块给另一个模块提供调用,就说提供服务)
 -- 重要测试代码之间的调用关系,也是接口测试的核心
3)Unit层:单元层,重要在单元测试阶段,使用白盒和黑盒的方法,测试某个模块的功能是否正确。
金字塔测试模型以为:UI层的测试效率低,发现Bug的能力弱,投入与产出比低(事倍功半),应该逐步减少接纳;而更多接纳Server层和Unit层的测试(更多的代码级测试)
基本理念:
    1.越底层,越稳定
    2.越底层,越高效
    3.越底层,越低成本
    4.越底层,越难实施

4、分层的主动化测试
基本观点:每一层都应该开展主动化测试
1)UI层:QTP、Selenium   功能主动化测试工具
  重要应用在回归测试、大数据量测试,代替测试员的重复手工测试;
  缺点:投入产出比低,发现Bug能力较弱
2)Unit层:
 Java测试:JUnit、JTest
 Python测试:Unittest     自带的白盒测试工具
 C/C++测试:C/C++ Test
 使用工具测试代码的正确性和语法正确性、规范性
 缺点:难度太大,找不到合适的人员,人力成本高;
3)Service层:接口主动化测试
 测试模块间的集成树模正确:
 接口测试就是测试模块间的调用关系的正确性。
 现在重要指Web接口测试,重要测试网页和后台服务器之间的数据传递的正确性。
二、接口的概念
1、一样平常生活中的接口
 通过接口连接,将传输的内容将一处传送到另一处。
2、程序的接口 API
 Application Programming Interface  应用编程接口
 接口本质上是程序开发的函数或方法,提供参数和返回值
3、函数:也称为方法   function、method
                           函数      方法
1)程序由大量的函数调用构成,有些编程语言把函数称作方法;
  目的:进步软件可复用性、易维护性
2)函数就是实现某个功能的代码,写在一个整体中,然后让本身或别人调用;call、invoke 
3)函数编写和调用示例:
函数的界说三要素:(C/Java语法)
                功能名 加入的数据
  返回值范例  函数名(参数表, ...)
            形参
   int  add(int a, int b) {
      return a + b;
   }
              实参
调用时:add(1, 2);   结果为3
          add(3, 5);   结果为8
函数界说:
A. 实现两个数相加
          1  2  实参
def add(x, y): 形参    变量就是代词,指代所用的值
  z=x+y
  return z
阐明:界说一个加法函数,函数名称叫add,使用x、y吸取两个参数,进行加法计算,末了将计算结果返回给调用者;
B. 实现减法函数
def sub(m, n):
  t=m-n
  return t
阐明:界说一个减法函数,函数名称叫sub,使用m、n吸取两个参数,进行减法计算,末了返回减法计算结果;
把函数理解成一个加工呆板,接受一定的参数(被加工的数据),进行处置惩罚,处置惩罚完以后,把结果返回给调用者;
函数调用: 
  a=10
  b=20
  sum=add(a,b)     
调用加法函数add,同时传递a=10给x,b=20给y
  res=sub(2000,1000)
调用减法函数,传递参数2000给m,1000给n
阐明:通过函数名称进行函数调用,本质就是要跳转到函数界说的位置去执行,并且把所需参数传递已往,到达重复使用代码,简化开发的目的。
函数核心要点:
  函数名称、需要的参数、返回结果、函数实现的功能
  函数必须先界说再调用
  一个函数界说一次可以被多次调用(重复使用)
类比:接口理解为大量可以重用的服务、功能
 接口测试重要是通过某种途径访问接口功能,通过参数传入需要的数据、条件,之后判断结果是否符合预期、需求。
 接口需要开发方计划、实现,由测试方进行测试。
三、Web接口测试
1、Web接口测试概念
Web接口测试就是测试前端和后端之间的Web接口的正确性。
现在企业说的接口测试,一样平常指的是Web接口测试或Http接口测试,重要指的是基于B/S架构的接口测试(B/S架构重要基于HTTP 超文本传输协议,所以也叫HTTP接口测试)
1)B/S架构使用的协议:
 HTTP  超文本传输协议
 HTTPS 安全版的HTTP协议
2)在客户端(Browser浏览器)和服务器端(Server)之间传输的数据重要包括:HTML(静态网页)、视频、音频、图片、CSS(样式表)、JavaScript等;
接口测试返回的结果大多是JSON格式文本。
2、接口测试产生的背景:
   (Web前端技术:HTML5、CSS3、JavaScript)
  Web页面做得越来越复杂,交互数据越来越多,在前端页面和后台服务器之间有大量数据传递(函数调用),为了降低前端工程师和后台程序员的难度,前端和后端接纳“接口”来传递数据。接口测试重要考察传递的数据是否正确。
Web规范:构建基于B/S架构程序的一套行业规范
1)Web前端技术:HTML5、CSS3、JavaScript
                    网页代码 层叠样式表  动态页面处置惩罚
 -- 越来越炫酷、丰富、用户体验好   前端开发工程师
     富客户端 Rich Client
2)Web后端:Web服务器、应用服务器、数据库服务器、缓存服务器... 
技术:以Java为例
   JavaSE 尺度版、JavaEE 企业级开发版本
   JDBC:对数据库访问的规范
   Servlet、JSP等Web规范
   大数据、缓存...
 -- 越来越稳定、高效、大数据、集群、分布式..
3)Web接口将前后端连接:表达客户端的请求,也能表达服务器的反馈,使用特殊文本,比如JSON、XML进行信息传递;现在主流的接口--Web接口
3、Web开发的经典模型:MVC架构模型   各司其职、各尽所能  分层为了分工
1)Model: 模型层        业务逻辑
  满足业务功能重要程序,对后台数据库进行访问
2)View: 视图层          体现逻辑
  满足用户不同的体现结果,提供更加丰富的界面
3)Controller: 控制器层  控制逻辑
  在V和M之间进行调治,指派某个M完成业务逻辑,将结果交给某个V体现界面结果;
逻辑:要符合某种条件,根据条件完成后续流程,称为是一种逻辑;
4、为什么接纳Web接口?
1)项目分工:
  产品经理、需求分析师
  开发人员:体系架构师、Web前端工程师、程序员
  测试人员
目的:各司其职,各尽所能,应用广泛
<1> 前端专业性越来越高,重点关注体现逻辑;
<2> 后端由程序员完成,重点关注业务和数据逻辑;
<3> Web接口应用广泛,既可满足Web页面调用,也可满足移动App调用,即可提供公司内体系调用(内部接口),也可提供给公司外体系调用(外部接口)。
2)为什么开发人员使用Web接口?
   程序是分层计划的,各层之间有数据传递
   表示层 <-> 业务逻辑层 <-> 数据访问层 <-> 数据库
   View    Controller  Model                       DB
几乎所有管理体系的共性:
对xxx信息的CURD操作:增删查改   
           Create Update Read Delete
5、为什么做Web接口测试?
Web接口测试就是测试前端和后端之间的Web接口的正确性。
1)可以更早的介入测试;
2)更好的验证体系的安全性和性能;
3)发现底层的题目。
接口:简称为API,是对大量可复勤奋能的统称;
      如何访问到某接口,对API的访问;
  Python API:  int()   str()  print() 函数
  Mysql函数:sum()  avg()  max() min()  count()
  C函数: strcmp("abc", "abc")  字符串比力
  Java方法:System.out.println();  打印...
  共同点:都有函数名(功能名)、参数表(加入计算的数据)、返回结果;
  Web接口:也有地点URL、参数,相应结果一样平常JSON格式;
              (满足Web协议-HTTP)
   A国  -----   B国
  秘书  -----   秘书
  机要  -----   机要
  电信  -----   电信
  设备  -----   设备
四、网络协议
网络协议:网络通讯的规则、规范、约定
协议要分层:不同层面负责不同功能,具有不同规则
               上下层有接洽,同层关系是对等
1、OSI7层模型:理论模型   参考模型
   从上到下:
    应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
   记忆方式:从下到上   物数网传会表应
2、TCP/IP 4层模型:实际中的网络模型  更实用
                    TCP/IP协议簇  cu4  簇拥 五彩缤纷
                    将同类协议聚在一起管理
 从上到下    作用
1)应用层   满足用户不同功能需求     应用程序、用户直接面临!
<1> HTTP 超文本传输协议     看网页、访问Web接口
<2> HTTPS 安全的HTTP       确保安全生意业务,内部多验证  基于SSL
<3> FTP  文件传输协议        文件上传、下载 传输文件
<4> SMTP 简单邮件传输协议  邮件收发
<5> POP3  邮局协议第3版本   和邮件有关
<6> SSH   安全的shell         远程控制Linux体系
<7> Telnet 远程登录           远程登录服务器
<8> DNS   域名解析服务      将域名->IP地点
<9> TFTP  简单文件传输协议  比FTP效率高,但不可靠
2)传输层   传输是否可靠   TCP和UDP
面试题:TCP和UDP有何区别?
<1> TCP  传输控制协议    可靠的、面向有连接,效率较低
原理:建立连接时3次握手,传输时进行2次握手,断开连接时4次握手
       “握手”就是信号简直认
       --相见时难别亦难
用途:大量应用层协议的传输层一样平常都是TCP,可靠
        HTTP、FTP、SMTP...
三次握手细节:
 通过三次握手包管数据传输时网络的连通性,在发送每个数据包之前,都会进行三次握手(确认):
 第一次由客户端向服务器发送SYN请求;
 第二次由服务器向客户机发送ACK应答信号;
 第三次由客户机向服务器发送ACK应答信号;
 三次握手完成后,再传递真正的数据包,到达率更高。
<2> UDP  用户数据报协议 不可靠的、面向无连接,效率较高
原理:只管发,不管确认
用途:对效率要求高,对可靠性要求较低的应用
       比如:视频会议
       比如:应用层TFTP 简单文件传输协议 传输层用UDP

3)网络层   寻找对方主机   IP
<1> IP协议:网际协议   IP地点、MAC地点、子网掩码
               ipconfig /all 查看到   IPv4  IPv6 
<2> ARP:地点解析协议        将网卡地点MAC -> 报文
<3> RARP:反向地点解析协议  报文 -> 网卡地点
<4> ICMP:Internet控制消息协议   网络连接检查有关
             比如ping下令 判断网络是否可以连通
详细细节和关系:
 a. 计算机要想上网,必须具备一个唯一的IP地点;
 b. 现在接纳IPv4版,使用32位二进制表示的一个地点,实际中,接纳4个十进制数表示,
   比如:192.168.0.100      4个字节,共32位表示地点
   1个字节的数据范围? 1Byte=8bit
   二进制:00000000 ~ 11111111
   十进制:0 ~ 255  
IP地点1: 172.166.0.122    主机名
IP地点2: 172.166.0.123
子网掩码:255.255.255.0   判断两个IP是否在同一子网中
        两个IP分别和子网掩码进行按位与操作,如果结果一致,阐明在同一网段中;172.166.0.0 结果一致
 c. IP地点可以分为静态IP和动态IP,静态IP就是人为设置一个固定的IP;
    动态IP是由服务器动态分配的。
 d. 使用ipconfig下令查看IP地点,会使用“网络和共享中心”配置IP;
 e. IP地点不易记忆使用,所以一样平常接纳域名来代替IP;
   但是需要DNS(Domain Name System 域名解析体系)解析解析:
    由域名找到对应的IP地点主机
     www.baidu.com  ---  61.135.169.125  公网IP
     www.360buy.com  www.jd.com
     www.xiaomi.com   www.mi.com
     www.tarena.com.cn  www.tedu.cn
   阐明:万网  注册域名  全球域名解析服务器有十几台
 f. IPv4的限制:数量有限,不够使用  2的32次方种
    现在公司、企古迹单位都接纳代理方式上网,也就是一台机用具有唯一IP,其他呆板接纳代理地点(172.168.xxx.xxx  192.168.xxx.xxx 作为局域网中出现),未来升级成IPv6版,128位二进制数表示;  2的128次方种IP地点
   物联网  
 g. 除了IP地点之外,还必须有物理硬件地点(网卡地点、MAC地点),IP + MAC地点才能唯一找到网络中的一台计算机;
  使用下令:ipconfig /all   查看MAC地点
             ipconfig -all
 h. IP协议负责封装/解封装目的呆板的IP地点,ARP/RARP协议负责封装/解封装MAC地点;
 i. ICMP:控制网络层的一些数据传递,重要用于网络的检查,比如检查与目的呆板是否连通;
   比如:ping 目的呆板IP或域名
          ping 172.166.0.20   请求超时
          ping www.baidu.com
 j. 小结:通过网络层,可以找到目的呆板的IP地点和MAC网卡地点,确定数据的目的地;
  
以上协媾和访问接口的关系: 
                                    
URL地点格式:      DNS
    含有主机名   域名、IP地点
http://主机名:端口号/应用名/资源路径
应用层 网络层 应用层
传输层 
  TCP
4)物理层   将信息变为各种信号发送和吸取 物理设备
               底层比特流、二进制的处置惩罚
                    bit
<1> PPP 点对点协议
 将各种光、电...信号 <-> 计算机二进制信号
 过于底层,不作为应用分析的细节
综上所述:重要关注应用层协议(HTTP为主 功能),附带相识传输层(TCP为主 可靠);  涉及主机寻址,需要关注 网络层 IP(寻址)
   Postman重要模仿:HTTP、HTTPS、FTP
   JMeter可以或许模仿更多协议:HTTP、JDBC、shell... 甚至通过二次开发可扩展 
   LR也支持大量协议  可以测试大多接口的性能
3、端口
1)端口作用:重要解决一台计算机中提供两个及以上同范例服务冲突题目,用来区别应用层的协议;
                              Tomcat
比如:一台服务器中提供两个Web网站,就需要把两个网站指定不同的端口号进行区别,以便客户端通过IP地点 + 端口号进行访问。
比如:
 http://172.166.0.10:8080
 http://172.166.0.10:8081
作用:通过IP地点寻址一台主机,通过占用的端口号找到不同服务;
2)常见默认端口号:(面试题)
当服务使用默认端口号时,访问时可以省略,比如http://...
 HTTP    80    大多基于TCP     :80可以省略
 HTTPS  443                      :443也可以省略
 FTP      21
 SSH     22
 Telnet   23
 SMTP   25
 DNS     53
 TFTP    69    基于UDP
 POP3    110
常用服务默认端口:
 Oracle     1521
 Mysql      3306     my.ini配置文件可修改
 Sqlserver  1433
 Tomcat     8080    conf/server.xml可修改 
3)安装完一个服务,如果不能正常启动,一种可能就是该电脑中有同范例服务已经启动,并占据了端口号,可以使用下令查看端口号占据环境:可以停止已经启动的服务进程,大概修改不同的端口号
  netstat -ano    
  netstat -ano |more 
   分屏体现,回车继续、空格翻页、q退出
定位技巧:
  通过 端口号 --> pid 进程号
        3306          1233 随机
  再通过任务管理器 pid --> 进程名  
                      1233     mysqld.exe
   可进一步管理,比如关闭进程、服务
右击“计算机” -> 管理 -> 服务和应用程序 -> 服务
五、HTTP协议
1、属于应用层协议,默认端口80,负责浏览器/服务器之间传递数据;
2、接纳“请求相应”方式工作;  B/S架构
 HTTP Request:   B -> S  客户端向Web服务器发请求
 HTTP Response:  B <- S  Web服务器向客户端返回相应
3、HTTP的请求方法 (重要面试题)
对请求对象(网页、文件、图片...)进行的操作,就是一些下令,程序员在编程的时候使用,在接口文档中会指明,测试人员测试接口的时候,按照阐明选择正确的方法。
Get: 请读取一个Web资源(页面、图片、视频、音频、css、js、JSON、XML...)
   比如:点击一个超级链接、进行搜索查询...
Post: 向服务器附加一些资源,大概提交一些数据;
   比如:提交表单指定post方式,提交表单的数据。
其它:
Delete:删除Web页面
Head:请求读取一个Web页面的首部
计划一个登录页面:
浏览器标题:用户登录页面
正文:            用户登录
-------------------------------------
有须要计划表单form,将客户端填写的信息一起提交給Web服务器,表单是一种块级元素,表示一块地域的内容:
点击登录,就会发请求访问URL  请求的方法 get、post
<form action="URL地点" method="get">
              用户名:__________  单行文本框
              密   码:__________  密码框  
                         登  录         提交按钮 
</form>
备份p1.html,重定名login.html
使用记事本编辑login.html
或专业的纯文本编辑器:EditPlus  UE   Notepad++   支持大量源代码的关键词着色加亮
实体:表示空格  
文件协议
file:///C:/Users/tren/Desktop/day01/p1.html?username=Tom&password=123
          网页中计划好的请求的参数名  用户填写的参数值
          名值对
p1.html?username=Tom&password=123
          查询字符串 Query String
        ?参数名=参数值&参数名=参数值&...
面试题1:HTTP常见请求方式、方法?
  Get、Post、Head、Put、Delete、Options、Connect...
面试题2:Get和Post方式有何区别?
1)Get: 得当向服务器索取Web资源  -- 索取
比如:Html网页、css样式表、JavaScript代码、图片jpg png gif、视频mp4、音频、接口返回的结果json文本、xml文本...
常见发送方式:什么样的请求是get请求?
<1> 浏览器地点栏写URL直接回车;
<2> 网页中主动获取图片、css、js等;
     <img src="图片资源路径"/>
<3> 点击超级链接  <a href="请求URL">链接文本</a>
<4> 表单提交可设置为get方式 -- 不保举
     <form action="URL" method="get">
<5> Ajax发送异步请求可指定为get方式
特点:
<1> 请求的参数在Http请求包头部header发送
     经常在URL后,以查询字符串方式  ?参数名=参数值
<2> URL后携带的信息有限,比如一样平常不超过2KB
     无法提交大量信息;
<3> 信息在URL后直接体现,不安全;
2)Post:得当向服务器提交大量信息  -- 给与
比如:注册时通过表单向服务器提交大量文本、文件等资源   可以上传文件
常见发送方式:什么样的请求是post请求?
<1> 表单提交可设置为post方式 -- 保举
     <form action="URL" method="post">
<2> Ajax发送异步请求可指定为post方式
特点:
<1> 请求的参数和数据在Http请求包的主体body中携带;
      信息量大、安全性好,但不是绝对安全,密码需要加密处置惩罚才安全;
<2> Post方式得当客户端向服务器提交大量的、综合的信息,比如文件上传等;
4、HTTP相应状态码
相应报文状态中包含的一个3位数字,指明HTTP请求相应的结果,如请求是否成功、失败或其他环境等。
HTTP相应码重要分为5类:
1xx  通知信息
2xx  成功       比如200 请求成功OK  
3xx  重定向     比如302 重定向相应   正常的技术手段
4xx  客户端错误  比如404 资源找不到  重点关注错误
5xx  服务器端错误 比如500 服务器端程序错误、异常
         通太过析后台服务器日志文件: XxxError  XxxException
         比如: OutOfMemoryError   内存溢出的错误  就是内存满了,不够用了
                FileNotFoundException  文件找不到异常   文件名写错了
    在Java、Python中专门为处置惩罚错误、异常计划了范例;
    通过不同异常范例反映不同的题目,便于题目发现、分析息争决;
参考HTTP状态码.txt  记忆重要的几个即可
https://www.w3school.com.cn/
W3CSchool文档:
HTML -> 参考手册 -> HTTP消息
Web开发面试题:请求转发和重定向有何区别? 开发工程师常见面试题
1)转发 forward   
多个组件协作完成一个任务,能共享请求中的数据
现象:地点栏体现 小花 地点
      小强          小花        如花
     请求1 ----> 转发给 --->
     相应1 <---------------  相应码:200 OK
2)重定向 redirect  重新开始一个新的任务
现象:地点栏体现 如花 地点
      小强          小花        如花
     请求1 ----> 
     相应1<----  重定向相应 302  相应内容是如花的地点
     请求2 ----------------->
     相应2 <---------------  相应码:200 OK
后续通过Fiddler抓包工具都能捕捉到;
5、URL
1)全称 Uniform Resource Locator 统一资源定位
 简单理解:网址,网络中资源(图片、网页、视频等)存储的位置(服务器、路径)
 客户只有知道资源的URL,才可以或许请求
2)格式:
http://主机名:端口号/路径
http    使用的协议,有可能是https  
://     固定分隔符
主机名 资源所在的呆板IP地点或域名
        如:170.223.2.30
             www.baidu.com
:端口号  使用的端口号,默认端口号一样平常就省略
          比如HTTP  :80    https  :443
/路径    资源所在的详细位置
          指定谁人Web应用、哪个模块、功能点
http://192.168.0.23:8080/JT/order/create.do
协议名   主机名    端口号 项目名 模块名 功能名
方式:Post    参数数据可以用JSON格式提交
功能:京淘购物体系中,订单模块,创建订单
jdbc:mysql://localhost:3306/testing
JDBC协议    本地主机 端口号 数据库名
阐明:JDBC协议 通过Java访问Mysql数据库的URL
表示:使用jdbc:mysql协议,访问本地主机中的mysql数据库(端口3306),对此中testing数据库进行连接访问;
后续使用Postman、Fiddler工具,提前安装;
https://www.postman.com/
接口来源:
https://www.idataapi.cn/
需要提前注册
https://www.juhe.cn/   
聚合,也需要提前注册,个人认证时,需要上传身份证照片(正反面)




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

西河刘卡车医

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表