浏览器接口测试(网页接口测试)

网友投稿 715 2023-04-12


本篇文章给大家谈谈浏览器接口测试,以及网页接口测试对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享浏览器接口测试的知识,其中也会对网页接口测试进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

【JMeter03】接口功能测试(浏览器【F12】调试模式抓包)

选定“baidu”请求-》右键-》添加“断言-响应断言”
选定“baidu”请求-》右键-》添加“监听器-断言结果”

至此,一个可以验证返回结果是否正确的接口功能测试用例完成。

需要用到“参数化”对脚本进行强化。且看下个章节的介绍。

fiddler抓包详细教程--接口测试

前言

Fiddler最大浏览器接口测试的优势在于抓包浏览器接口测试浏览器接口测试我们大部分使用的功能也在抓包的功能上,fiddler做接口测试也是非常方便的。

对应没有接口测试文档的时候,可以直接抓完包后,copy请求参数,修改下就可以浏览器接口测试了。

Composer简介

点开右侧Composer区域,可以看到如下界面,就是测试接口的界面了
1.请求方式:点开可以勾选请求协议是get、post等

2.url地址栏:输入请求的url地址

3.请求头:第三块区域可以输入请求头信息

4.请求body:post请求在此区域输入body信息

5.执行:Execute按钮点击后就可以执行请求了

6.http版本:可以勾选http版本

7.请求历史:执行完成后会在右侧History区域生成历史记录

模拟get请求

1.在Composer区域地址栏输入博客首页: http://www.cnblogs.com/yoyoketang/

2.选择get请求,点Execute执行,请求就可以发送成功啦

3.请求发送成功后,左边会话框会生成一个会话记录,可以查看抓包详情

4.右侧history区域会多一个历史请求记录

5.会话框选中该记录,查看测试结果:

选中该会话,点开Inspectors

response区域点开Raw区域

Raw查看的是HTML源码的数据
也可以点WebView,查看返回的web页面数据
Json数据

1.有些post的请求参数和返回参数是Json格式的,如博客园的登录请求: https://passport.cnblogs.com/user/signin

2.在登录页面手动输入账号和密码,登录成功。

3.找到这个登录成功的会话,查看json数据如下图:
模拟post请求

1.请求类型勾选post

2.url地址栏输入对应的请求地址

3.body区域写登录的json参数,json参数直接copy上一步抓包的数据,如下图红色区域
4.header请求头区域,可以把前面登录成功后的头部抓包的数据copy过来

(注意,有些请求如果请求头为空的话,会请求失败的)
5.执行成功后查看测试结果:

–执行成功如第三所示的图,显示success=True

–执行失败如下图所示,显示

message=Invalid length for a Base-64 char array or string.

success=False
get请求(url详解)

前言

上一篇介绍了Composer的功能,可以模拟get和post请求,get请求有些是不带参数的,这种比较容易,直接放到url地址栏就行。有些get请求会带有参数,本篇详细介绍url地址格式。

url详解

1.url就是我们平常打开百度在地址栏输入的: https://www.baidu.com ,如下图,这个是最简单的url地址,打开的是百度的主页
2.再看一个稍微复杂一点的url,在百度输入框输入:上海悠悠博客园
3.查看url地址栏,对比之前的百度首页url地址,后面多了很多参数。当然最主要的参数是:wd=上海悠悠博客园(后面的一大串可以暂时忽略)。

4.那么问题来了,这些参数有什么作用呢?

可以做个简单的对比,在地址栏分别输入:

https://www.baidu.com

https://www.baidu.com/s?wd=上海悠悠博客园

对比打开的页面有什么不一样,现在知道作用了吧,也就是说这个多的”/s?wd=上海悠悠博客园”就是搜索的结果页面

url解析

1.以” https://www.baidu.com/s?wd=上海悠悠博客园”这个url请求的抓包为例
2.那么一个完整的url地址,基本格式如下:

https://host :port/path?xxx=aaaooo=bbb

http/https:这个是协议类型,如图中所示

host:服务器的IP地址或者域名,如图中2所示

port:HTTP服务器的默认端口是80,这种情况下端口号可以省略。

如果使用了别的端口,必须指明,例如:192.168.3.111:8080,这里的8080就是端口

path:访问资源的路径,如图中3所示/s (图中3是把path和请求参数放一起了)

?:url里面的?这个符号是个分割线,用来区分问号前面的是path,问号后面的是参数

url-params:问号后面的是请求参数,格式:xxx=aaa,如图4区域就是请求参数

:多个参数用符号连接

请求参数(params)

1.在url里面请求参数一般叫params,但是我们在fiddler抓包工具看到的参数是:QueryString

2.QueryString是像服务端提交的参数,其实跟params是一个意思,每个参数对应的都有name和value值

3.多个参数情况如下:
UrlEncode编码

1.如果url地址的参数带有中文的,一般在url里面会是这样的,如第二点里的wd=%E4%B8%8A%E6%B5%B7%E6%…

像看到%E4这种编码的就是经过url编码过的,需要解码就能看到是什么中文了

2.用urlencode在线编码/解码工具,地址: http://tool.chinaz.com/tools/urlencode.aspx
post请求(body)

前言上一篇讲过get请求的参数都在url里,post的请求相对于get请求多了个body部分,本篇就详细讲解下body部分参数的几种形式。

注意:post请求的参数可以放在url,也可以放在body,也可以同时放在url和body,当然post请求也可以不带参数。

只是一般来说,post请求的参数习惯放到body部分

body数据类型

常见的post提交数据类型有四种:

1.第一种:application/json:这是最常见的json格式,也是非常友好的深受小伙伴喜欢的一种,如下

2.第二种:application/x-www-form-urlencoded:浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数

3.第三种:multipart/form-data:这一种是表单格式的,数据类型如下:

4.第四种:text/xml:这种直接传的xml格式

json格式

1.打开博客园的登录页面,输入账号密码后抓包,查看post提交数据,点开Raw查看整个请求的原始数据
2.前面讲过post的请求多一个body部分,上图红色区域就是博客园登录接口的body部分,很明显这种格式是前面讲到的第一种json格式

3.查看json格式的树状结构,更友好,可以点开JSON菜单项
4.查看这里的json数据,很明显传了三个参数:

input1:这个是登录的账号参数(加密过)

input2:这个是登录的密码参数(加密过)

remember:这个是登录页面的勾选是否记住密码的选项,False是不记住,True是记住

x-www-form-urlencoded

1.登录博客园后,打开新随笔,随便写一个标题和一个正文后保存,抓包数据如下
2.如上图的这种格式,很明显就属于第二种了,这种类型的数据查看,在WebFrom里面查看了
3.上面红色框框的Query String是url里面的参数,下面红色框框的body部分就是这次post提交的body参数部分了。

WebFrom

1.为什么登录请求的WebFrom的body部分为空呢?
2.看上图红色框框的显示:这里只支持application/x-www-form-urlencoded这种格式的body参数,也就是说json格式的,需要在JOSN这一栏查看了。

【分享】接口测试-header头部详解

一、什么是header

header浏览器接口测试:标头 (header) 是服务器以 HTTP 协议传 HTML 资料到浏览器前所送出浏览器接口测试的字串,在标头与 HTML 文件之间尚需空一行分隔。

-----百度百科

header是发送请求时携带的头部信息。通常一些鉴权的信息:authentication/cookie、响应的数据格式:content-type等等的设置。当然响应的数据也会返回一些头部信息。

二、header头部参数对应含义

1、Request header:

User-Agent:告诉Http服务器,客户端使用的操作系统和浏览器名称和版本(这也是区分pc端或者app端的方式)

app端也可区分Android和iOS如图:

2、Clint头域:

Accept:浏览器端可以接受的媒体类型(MIME)浏览器接口测试

Accept-Charset:浏览器可接受的字符集浏览器接口测试

Accept-Encoding:浏览器申明自己接受的编码方法,压缩方式,是否支持压缩,支持什么压缩方法

Accept-Language:申明自己接受的语言

clint头域的作用,客户端和服务器端要进行通信,那么客户端就得向服务器申明自己交流的方式(User-Agent)、交流的语言(Accept-Language)、交流的字体(accept-Encoding),已经客户端接受的内容(accept)等

3、Cache头域:

If-Modified-Since:把浏览器端缓存页面的最后修改时间发送到服务器上,服务器会把这个时间与时间文件的修改时间进行比对 ,时间一直返回304使用本地缓存数据,时间不一致返回200和新的文件内容,客户端接到之后会丢弃旧文件再把新文件缓存起来并显示在浏览器中 。

If-None-Match:和ETag一起工作,工作原理是HTTP Response中添加ETag信息,当用户再次请求该资源时,将在HTTP Request中加入If-None-Match信息(ETag的值)。如果服务器验证资源的ETag没有改变(该资源没有更新),奖返回一个304状态告诉客户端使用本地魂村文件。否则将返回200状态和新的资源和Etage,使用这样的机制将提高网站的新性能。

Pragma:作用是防止页面被缓存,在HTTP/1.1版本中,它和Cache-Control:no-cache作用一模一样

Cache-Control:用来指定Response-Request遵循的缓存机制,如下:

Cache-Control:Public可以被任何缓存所缓存()

Cache-Control:Private内容只缓存到私有缓存中

Cache-Control:no-cache所有内容都不会被缓存

4、Cookie/Login头域

Cookie:最重要的header,奖cookie的值发送给HTTP服务器

5、Transport头域

Connection:连接的状态,keep-alive当打开一个网页后,客户端和服务器之前传输Http数据到TCP连接诶不会关闭,如果客户端再次访问这个服务器的网页,会继续使用这条已经建立的连接;close当打开一个请求完成后,客户端和服务器之前用于传输HTTP数据的TCP连接会关闭,当客户端再次发送请求,需要重新建立TCP连接

Host(发送请求时,该报头域是必须的):请求报头域而主要用于指定被请求资源的Internet主机和端口号,他通常从HTTP URL中提取出来的,host中端口号省却却表示默认端口后80

6、Entity头域

Content-Length:发送给HTTp服务器数据的长度

Content-Type:互联网媒体类型

7、Miscellaneous头域

Referer:提供Request的上下文信息的服务器,告诉服务器我是从哪个连接过来的。

8、Ajax请求方式

服务器判断request请求是同步还是异步,如果header中有X-Requested-With:XMLHttpRequest表示为异步请求,当X-Requested-With:null是为同步请求

三、接口测试工具

接口测试和接口文档生成工具:apipost

接口测试和接口性能测试工具:jmeter

什么是接口测试?

1接口测试的定义与分类浏览器接口测试,以下就是接口测试
接口测试是测试系统组件间接口的一种测试。
主要用于检测外部系统与系统之间以及系统内部各个子系统之间的交互点。
重点测试数据的交换、传递和控制管理过程浏览器接口测试,以及系统间的相互逻辑依赖关系等等。
这要求对业务逻辑有一定程度上的理解,对数据流向有较好的定位。
接口测试般会用于多系统间交互开发,或者拥有多个子系统的应用系统开发的测试。
接口测试适用于为其他系统提供服务的底层框架系统和中心服务系统,主要测试这些系统对外部提供的接口,验证其正确性和稳定性。
接口测试同样适用于一个上层系统中的服务层接口,越往上层,其测试的难度越大。
接口测试实施在多系统多平台的构架下,有着极为高效的成本收益比。
接口测试天生为高复杂性的平台带来高效的缺陷监测和质量监督能力。平台越复杂,系统越庞大,接口测试的效果越明显。
接口测试的目的是测试接口,尤其是那些与系统相关联的外部接口,测试的重点是要检查数据的交换、传递和控制管理过程,还包括处理的次数。外部接口测试一般是作为系统测试来看待的。
不是所有的团队都可以在一个隔离的测试环境中进行测试工作的,因此使得对外部接口的测试显得困难。
浏览器接口测试我们应该确保较早地与相关的组织协调好并确定进行外部接口测试的方案。
有时候相关的组织只是人工的静态的审阅一次数据而并不真正的用这些数据来测试,这些都增加了实际测试执行中遇到的风险,但有些时候是可以避免的。
接口测试有的公司是归纳在集成测试里面,也有的公司会放在系统测试阶段,不过这个都没有什么区别,本质上接口测试就是通过某个功能模块对外暴露的一个接口地址传参进行测试。
一般来说接口分为如下三类浏览器接口测试
A. 系统与系统之间的调用(如我们一般常见的分享内容到朋友圈或者是微信朋友时,微信会提供接口给这些需要用到分享的应用)上层服务对下层服务的调用(这个理解难度稍微有点大,在我们程序中功能是分层的,那么属于上层对底层服务的调用,以后能够有机会接触到代码或者更加稍微复杂点的接口测试就能够理解。举个例子,我们的程序框架分为三层,分别是web层:提供给用户请求的层次;feb迁至层:作为信息传递的中转站;service层:作为程序应用的核心,处理所有的请求
C.服务之间的调用(如添加一条数据时,会先调用数据查询的服务,查询该数据是否是重复数据)
不同类型的接口测试方法可能不一致,但总体来说不管是哪种类型,被测接口即为服务,测试手段为客服方,接口测试的目的就是:通过我们的测试手段,去验证满足其申明提供的功能。
2如何做接口测试
接口测试的原理:通过测试程序模拟客服端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一过程(reques-response)。
接口测试的流程与功能测试有什么区别呢?从原则上以及流程上讲,是没有啥区别的,都同一套软件测试流程:需求讨论-评审需求-确定需求-产出接口定义-根据需求文档及接口定义设计测试用例(测试用例主要从业务场景,功能以及异常测试几个方面考虑)-评审用例-执行测试。
接口测试采用的最基本的就是黑盒测试,在这个测试过程中我们最需要关注的是,如何来设计测试用例,设计测试用例所采用的方法也是我们常所用的几大方法:等价类、边界值以及错误推测法、场景法。在设计测试用例之前,我们先来看看常见的接口文档形式。
这就是上图是一种比较规范的接口文档说明,包含了如下内容模块:接口的类型说明、接口地址、http请求方式、输入参数和请求接口后返回的响应结果。
接口测试编写测试用例,主要关注点是输入参数、输出结果以及内部业务逻辑是否正常‘,所以我梦设计用例也要从这几方面出发考虑:
a)输入参数测试:针对输入参数进行的测试,也可以说是假定接口参数的不正确性 进行的测试,确保接口对任意类型的输入都做了相应的处理:输入参数合法(不合法),输入参数为空,为null,输入参数超长等等;
b)接口是否满足了所提供的功能,相当正常情况测试,如果一个接口功能复杂时推荐对接口用例进行结构划分,这样子用例就有更好的可读性和可维护性;
c)逻辑测试:逻辑测试严格讲应为单元测试,单元测试应保持内部逻辑的正确性,可单元测试和接口测试的界限并不是那么清晰,所以我们也可以从给出的设计文档中考虑内部逻辑错误的分支情况和异常;
d)异常情况接口测试:接口实现是否对异常情况都进行了处理,接口输入参数虽然合法,但是在接口实现中,也会出现异常,因为内部的异常不一定是输入的数据造成的,而有可能是其他逻辑造成的,程序需要对任何异常都进行处理;
针对上面的注册接口,我们利用测试用例设计方法来编写测试用例,如下所示:
3接口测试的工具选择
可以进行接口测试的工具有很多,这里简单介绍几个:
loadrunner :一款商业性能测试工具,用来做接口测试,很好很强大。
jmeter :一款开源的性能测试工具,操作简单方便,既有jdbc request 操作数据库数据,也有http request 和 soap request 应对测试;
httprequester :火狐浏览器自带接口测试工具,插件中安装即可,界面简单明了,容易上手。
postman :谷歌浏览器的扩展工具,界面简洁,开发者比较常用的一款插件工具。
soapui : 开源测试工具,通过soap/http 来检查、调用、实现web service的功能/负载/符合性测试。
我们将在后面的教学中,重点讲解Jmeter这款综合性比较高的工具;

软件测试面试题:WEB+网络|接口测试|性能测试|自动化测试


1. http代码表浏览器接口测试,常考题目

404浏览器接口测试:找不到资源

500:服务器内部错误,无法完成请求。

501:服务器不支持请求的功能,无法完成请求。

502:充当网关或代理的服务器,从远端服务器接收到浏览器接口测试了一个无效的请求。

301:永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI,今后任何新的请求都应使用新的URI代替。

302:临时移动。与301类似。但资源只是临时被移动,客户端应继续使用原有URI。

200:成功。

2. TCP/IP四层网络模型

链路层、网络层、传输层、应用层。

3. TCP/UDP区别浏览器接口测试

TCP: 可靠传输协议,需要三次握手连接,有确认重传机制,特点是可靠、准确、有拥塞控制,缺点就是比较慢,传输量比较小,适用于升级、下载;一句话:TCP是可靠的传输。

UDP: 不可靠传输协议,面向非连接的协议,优点是传输量大、速度快,缺点是已丢失、没有拥塞控制,适用于直播、视频等。一句话:UDP是不可靠的传输。

4. html css js运行的先后顺序是什么?

界面加载的时候先加载html在加载css最后加载js

5. session和cookie的区别是什么

1. session存放在服务器端用来校验客户端的身份

2. cookie存放在客户端,每次从客户端往服务器发请求时,将cookie带到服务器端,用来校验客户端的身份



1. 怎么用JMeter测试接口?

如果使用JMeter进行接口测试:

1) 测试前浏览器接口测试了解需求,根据接口规格说明书梳理业务;

2) 接下来设计用例,分析接口的入参和出参,分清楚有哪些有效输入和无效输入,设计用例(原则:用最少的用例覆盖所有有效输入,针对每一个无效的输入设计一个测试用例,如果有错误码没有覆盖到,还要对每个未覆盖的错误码分别设计一个用例);

3) 准备测试数据,比如:测试所需的账号、密码、key 等信息;

4) 打开JMeter,创建一个线程组,根据接口类型,填写好对应的接口地址和请求方式等;

5) 参数化配置,添加配置元件CSV Data Set Config,定义变量,并准备CSV格式的数据,变量的引用用${变量名}的格式;

6) 添加断言来判断测试结果的正确性,用得最多的是响应断言;

7) 添加监听器,比如查看结果树,对测试结果进行监听;

8) 运行测试用例;

9) 查看监听器结果,来判断用例的执行是成功还是失败,针对失败的用例,分析其失败原因;

10) 针对测试中发现的问题,给开发提单,直到问题最终解决。

11) 最后输出测试报告。

2. 怎么用Postman测试接口?

如果使用Postman测试接口:

其中1,2,3点相同,工具使用方面则比JMeter跟简单,工具的主要的步骤是添加对应的请求、填写主机URL及入参、添加测试套、运行测试套、分析结果出报告。

3. 在JMeter上如何把上一个请求的结果作为下一个请求的参数?

使用正则表达式提取器提取上一个请求的响应中的信息,保存一个引用名称比如abc,在下一个请求的参数中,用${abc}的格式来引用提取的结果。

常用的正则表达式格式:(.+?),其中.表示匹配任意字符串,+表示只匹配一次,?表示匹配到就停下来。



一般是我们功能测试完成最后两三天时间测试性能。

1、先是分析需求计算出并发数,TPS,响应时间和 CPU,内存,硬盘和网络IO这些指标。

2、制定测试方案,主要包括环境,计划和具体测试那些场景(如可靠性,并发,负载,压力测试等)

3、根据场景用Badboy录制脚本,导出为JMeter工具支持的脚本。

4、用JMeter工具打开脚本,进行脚本调试,加一些断言,监听器,参数化等。

5、接下来执行性能测试,然后主要收集监听器和收集服务器CPU,内存,硬盘和网络IO等分析是否满足需求,如果满足就输出性能测试报告。

6、如果指标不能满足,反馈给开发进行调优。调优后继续测试,一直到满足需求后最终输出测试报告。



1. Python怎么定义一个函数?

你可以定义一个由自己想要功能的函数,以下是简单的规则:

1) 函数代码块以def关键词开头,后接函数标识符名称和圆括号()。

2) 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。

3) 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

4) 函数内容以冒号起始,并且缩进

5) return[表达式]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None


2 Python切片

3. Python上用过什么库/模块?

webdriver:定位和操作元素

time:设置等待时间

ActionChains:动作链,完成鼠标的相关操作

Keys:键盘的相关操作

WebDriverWait:设置显式等待

Expect_Conditions:针对单个元素,设置显式等待的场景

PIL:截图

Select:下拉选择框的操作

unittest python:自带的单元测试框架

HTMLTestRunner:运行脚本,生成报告

ddt:实现数据驱动测试,行为和数据分离

4. 你做过自动化测试吗?

我在上一份工作中,公司去年下半年也开始规划做Web 自动化,采用Python作为开发语言,通过Selenium WebDriver定位和操作页面元素,自动化框架用的是unittest。我主要负责写测试脚本。

假设一个测试团队有5个人:1资深(测试经理)+2~3个中级(自动化+手动)+1 个初级(手动)

5. 使用什么工具进行的自动化测试

使用的工具是Selenium(Web自动化工具)

6. 用的什么编程语言

用的Python

7. Selenium 用的是哪个版本的的?Python用的是哪个版本的?

用的是selenium 3.11.0和Python2.7.10

8. Selenium的工作原理?

1)对html元素定位

2)模拟对第一步定位到的元素进行点击、输入、选择等操作一句话:定位元素,操作元素。

9. 元素定位方法有哪些?

要点:8种定位方法

1) 根据元素的属性值定位,比如 id、name、class、标签名、链接文字和部分链接文字;

2) 根据CSS选择器定位;

3) 根据 XPath 定位;

10. 子页面里的元素怎么定位?

先切换到框架里,然后再定位,用switch_to_frame函数根据子页面id或name,切换到子页面;定位完了如果要再定位主页面的元素,要用switch_to_default_content 函数先返回主页面。

11. 怎么定位alert弹窗?或者这样问:怎么处理JS原生窗口?

要点:主要涉及点击弹窗确认按钮、强行关闭弹窗、获取弹窗中的文字等操作。

1) 点击弹窗的确定按钮,用如下函数:

driver.switch_to_alert().accept()

2) 强行关闭,点击右上角的叉叉,用如下函数:

driver.switch_to_alert().dismiss()

3) 获取弹窗里的文字,用如下函数:

driver.switch_to_alert().text

12. 怎么运行自动化用例并生成测试报告?

以unittest为例,我通常的做法是把用例加载到测试套中,做成一个脚本,在命令窗口下运行脚本,报告的生成用第三方模块HTML TestRunner来生成。

13. 怎么定位/操作图片中的验证码?

用tesseract OCR引擎处理图片中的验证码,步骤:

(1)对整个屏幕截屏,保存成png格式的图片;

(2)在截取的图片中定位验证码图片的位置坐标;

(3)根据坐标对验证码截图;

(4)在图片中提取验证码,输入到输入框。

关于浏览器接口测试和网页接口测试的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 浏览器接口测试的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于网页接口测试、浏览器接口测试的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:API管理工具 mock(api管理是什么意思)
下一篇:dubbo接口需要测试什么(dubbo接口是什么)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~