day1

接口测试
1、什么是接口?
书面定义:接口(软件类接口)是指对协定进行定义的引用类型。其他类型实现接口,以保证它们支持某些操作。接口指定必须由类提供的成员或实现它的其他接口。与类相似,接口可以包含方法、属性、索引器和事件作为成员。
个人理解:从数据库中获取数据,接口测试就是功能测试,它比功能测试更简单。
2、为什么使用接口?
每种编程语言无法相互识别,规定一种互通数据的方式,使用接口不同编程语言可进行交互。就好比每个国家都有自己的语言,各国人相互交流有障碍。规定英语为世界通用语言,使用英语各个国家的人才可以相互交流。
3、测试接口需要什么?
接口请求URL地址
请求必要参数,查看开发文档可知道必填参数
请求方式 get/post/put/delete等等,非get请求方法必须使用工具才能查看,程序开发主要使用get与post请求方式。
4、get请求与post请求的区别
get请产生一个TCP数据包;post请求产生两个TCP数据包。
get请求不需要借助任何工具,使用浏览器直接访问,参数放在URL中有长度限制。
post请求参数放在Request body中,数据没有长度限制。
get请求只能进行url编码,而post支持多种编码方式。
5、get请求与post请求URL详解
get请求示例
Request URL: https://www.baidu.com/his?wd=&from=pc_web&rf=3&hisdata=&json=1&p=3&sid=1458_21085_28557_28607_28584_26350_28518_28605&req=2&bs=get%E4%B8%8Epost%E6%96%B9%E5%BC%8F%E7%9A%84%E5%8C%BA%E5%88%AB&csor=0&cb=jQuery110209558625977146851_1552813545487&_=1552813545488
get请求,?后面接参数,有多个参数用&分割
post请求示例
Request URL: https://qun.qq.com/cgi-bin/qun_mgr/search_group_members

5、json是什么?
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。json是现在普遍使用的数据交换格式,所有编程语言都能解析。
客户端-服务端的传参交互格式key - value
6、seesion与cookie是什么?
seesion就是存在服务端的一个键值对
cookie就存在客户端的一个键值对
7、HTTP协议
HTTP协议包括请求头与请求体,请求头包括一些额外信息,使用什么浏览器,cooike等等,请求体包含具体传输的数据。
请求头示例

请求体示例

8、Google Chrome开发者工具使用

开发者工具-network
all - 显示所有包括参数、图片、视频
XHR - 只显示参数(测试常用)
headers - 显示HTTP协议信息,包含请求头与请求体
Preview - 显示具体参数
9、postman使用
GET:HTTP的常用请求方法

请求的URL"https://api.github.com/events"
点击蓝色“Send”按钮,获取返回值。
GET请求的参数在url后面拼接,如:"https://api.github.com/events?id=1&name=user"
POST:HTTP的常用请求方法

请求的URL:"http://httpbin.org/post"
Body:设置POST请求的参数。
form-data: HTTP请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。
x-wwww-form-urlencode:HTTP请求中的application/x-www-from-urlencoded,会将表单内的数据转换为键值对。
raw:可以发送任意格式的接口数据,可以text、json、xml、html等。
binary:HTTP请求中的相Content-Type:application/octet-stream,只可以发送二进制数据。通常用于文件的上传。
multipart/form-data与x-www-form-urlencoded区别
multipart/form-data:既可以上传文件等二进制数据,也可以上传表单键值对,只是最后会转化为一条信息。
x-www-form-urlencoded:只能上传键值对,并且键值对都是间隔分开的。
认证接口

Authorization:用于需要认证的接口。
Basic Auth:最基本的一种认证类型,还有OAuth 1.0/2.0、Digest Auth等认证类型。
Username/Password:这是针对Basic Auth类型的认证的用户名/密码,并非我们认为的系统登录的用户名密码。
上传文件

选择binary,上传文件,根据具体要求填写cookie。
保持登录状态请求

headers中填写coolie的值

在Body下选择form-data填写参数
按下蓝色按钮“Send”发送请求
10、jmeter使用
线程组
一般常用线程组:可以理解成为loadrunner虚拟用户
setup线程组:可用于执行预测操作。类似loadrunner中的init
teardown线程组:可用于执行测试后动作。类似loadrunner中的end
HTTP请求

HTTP请求,填写测试方法get、post等等,填写路径,传参、消息体、文件等等。基础的测试脚本组件。
添加-取样器-HTTP请求
HTTP请求默认值

HTTP请求默认值,使所有测试接口使用HTTP地址,在每个接口中不必在写入全路径
添加方法:添加-配置元件-HTTP请求默认值
服务器名称或IP:填写测试网站的HTTP地址
HTTP cookie管理器

cookie管理器,某些接口需要cookie才能进行测试,把cookie管理器添加到所需测试的接口下。比如为用户充值、上传文件等。
添加方法:添加-配置元件-cookie管理
名称:登录用户的名称
值:用户登录后返回的seesionID
域:登录的网址
HTTP信息头管理器

HTTP信息头管理器,传输多个cookie值就要使用信息头管理器。
添加方法:添加-配置元件-HTTP信息头管理器
名称:填写cookie
值:填写登录用户加等号加seesionid(测试使用的平台规定,工作中根据实际测试填写),真实测试中使用浏览器开发者工具直接查看cookie,填写即可
传json方法

jmeter传json需要写在消息体数据中,json格式如图所示。
函数助手

随机数

自动生成时间,时间戳和格式化时间
时间戳,从计算机诞生那一天到现在过了多少秒,写法${__time(,)}
格式化时间,写法${__time(yyyyMMddHHmmss,)}
用户自定义变量


设置用户自己使用的变量,名称写入变量名称,值写入脚本传输的参数。写法示例:${host},以此方式写到需要使用的HTTP请求中
添加-配置元件-用户自定义变量
文件参数化

 


创建文件本传参给jmeter,方便测试大量数据使用。
文本的分隔符一定根据jmeter填写的格式填写
变量名称使用逗号分隔
变量名称写进要测试的HTTP请求中,示例${}
添加-配置元件-CVS数据文件设置
响应断言

填写接口返回参数值来测试返回是否正确,填写值选择匹配模式开始测试。
添加-断言-响应断言
关联JSON提取器

Names of created variables:设置提取参数的变量
JSON Path expressions:提取参数的位置

选择JSON Path Tester-JSON Path expressions输入要查找的JSON参数。具体搜索方法如下:
$.代表跟节点,自己理解为搜索全文
login_info输入需要查找的json参数,如果有多级使用“.”分隔
输入完成点击Test,查看提取参数是否正确
添加-后置处理-JSON提取器
解决jmeter返回中文乱码
在打开jmeter\bin目录下jmeter.properties文件中文末加入sampleresult.default.encoding=UTF-8
重启jmeter
bodydata里面中文显示不出来
在jmeter.properties文件中文末加入jsyntaxtextarea.font.family=Hack
重启jmeter

posted @ 2019-03-22 10:41  至死不渝的爱  阅读(168)  评论(0编辑  收藏  举报