Apache - Jmeter 安装方法:
 接口测试理论:什么是接口测试?
接口测试的原理是什么?
接口文档包含哪些内容?
常见的接口协议类型有什么?
常见的接口测试工具
典型接口的例子:
什么时候开始接口测试?
为什么要进行接口测试
接口测试的流程:
如果没有接口文档我们如何去测试接口?
Jmeter使用:步骤:
一、Jmeter测接口的详细步骤:第1步:右键点击测试计划选择 添加- threads(users)-线程组  第2步:右键单击线程组,选择添加- sampler - HTTP请求  第3步:右键单击线程组,选择添加-监听器-查看结果树  第4步:打开fiddler,在抓到的登录接口上,右键单击那条地址,copy-just URL复制网址 第5步:打开jmeter的线程组-HTTP请求,将复制的地址粘贴到路径中 第6步:打开打开fiddler,复制表单数据,然后打开打开jmeter的线程组-HTTP请求,在 Parameters中点击下方的Add from Clipboard就可以将复制的表单数据自动粘贴上  第7步:在HTTP请求中方法选择POST,点击上方工具栏播放按钮运行,跳出的弹窗选择否  第8步:查看结果树,然后在左下角将TEXT改为HTML,然后点击HTTP请求查看相应数据  二、Jmeter抓包 (1)浏览器配置代理,主机127.0.0.1 端口:8888 (2)Jmeter在工作台右键添加-非测试元件- HTTP代理服务器 (3)点击HTTP代理服务器,将端口改为8888,IP设置为127.0.0.1目标控制器选择测试 计划-线程组,然后点击启动 (4)点击下方启动按钮,就可以抓包了 录制脚本(基于抓包)
HTTP请求默认值的使用(元件)
用户定义的变量(元件)
正则表达式提取器(1)在某个HTTP请求下右键 添加 - 后置处理器 - 正则表达式提取器,然后引用名称自己新命名,正则表达式复制源代码(中包含这个变量值的一行代码在察看结果树将查看类型从HTML改为Text可以查看源代码,这行代码在源代码中必须是唯一的,如果不唯一则无法定位要取哪个的值)将变量值改为括号点加问号(.+?)其他的代码比如空格一定不要删除。 (2)在另外一个HTTP请求中就可以${新的命名}调用正则表达式中提取的值。如下图   如何测试两个相互依赖(关联)的接口/怎么使上个请求的返回结果作为下个请求的参数 我们可以使用正则表达式提取器,把正则表达式提取器放到第一个请求的下面,然后把想要提取的内容用(.+?)去代替,然后起一个变量名,当下一个请求(同级)需要调用这个返回结果的时候就直接在请求的参数值里面用${变量名}去引用就可以了。 **${变量名****}****学名叫做参数化****(.+?)中****.代表匹配任意字符串****+代表匹配一次或者多次****?代表找到之后就停止****$1$ 代表匹配第一个模板****$2$代表匹配第二个模板****…****以此类推****匹配多个的时候用逗号隔开$1$,$2$** 七、随机函数Random/Random String (1)_Random 生成随机数字  (2)_Random String 生成随机字符串 8代表随机生成8位数,ABCDEFabcdef123456代表范围在ABCDEFabcdef123456中  (3)复制生成的字符串,操作查看结果 GET请求抓到一个GET请求,然后在jmeter测试计划中右键添加线程组,然后在线程组中添加一个HTTP请求,然后在HTTP请求中改参数,请求方式为GET,服务器名、路径输入上,参数直接跟在路径后以?分割或者将参数放在parameters中 CSV(读取*TXT*中的测试用例)批量运行用例加响应断言**断言:判断预期结果是否与实际结果一致 (1)在测试计划中新建线程组,然后在线程组中添加-配置元件-CSV Data Set Config (2)在桌面(自己选择路径)新建一个txt文件,输入参数: 如lee011,lee011@wo.cn,000000,13133132532,注册成功(每个变量值间使用,隔开,每行 代表执行一次的所有参数,注册成功是预期结果,在下方在变量名中命名为duanyan) (3)在CSV Data Set Config中将filename填写自己写的TXT文件的完整路径加文件名 Variable Names填写文件中变量值相对应的变量名  (4)新建一个HTTP请求,填写参数,参数中使用${变量名}调用CSV Data Set Config中的变 量名  (5)在HTTP请求下级目录添加-断言-响应断言。然后在响应断言的要测试模式中添加 ${duanyan} 其中duanyan为CSV Data Set Config中的一个变量名,即TXT文件中变量值 中的预期结果那项的变量名(预期结果是根据接口文档要求来写的)。模式匹配规则选 择包括。线程组中修改线程数为TXT中用例的个数  (6)在线程组中添加-监听器-察看结果树。然后运行在结果树中查看结果,如果实际运行 结果与预期结果一致则显示绿色通过不一致代表运行结果与接口文档规定的预期结 果不符合(即出现BUG),显示 数据库批量对比JDBC Connection Configuration、JDBC Request加循环控制器Jmeter中函数里边套函数(如${name_${M}})系统无法识别,需要使用V函数 (1)将数据库配置jar包放在jmeter的bin目录: D:\apache-jmeter-3.0\bin\mysql-connector-java-5.1.7-bin.jar(Mysql驱动jar包) (2)打开jmeter的测试计划,点击浏览,然后将jar包找到选中。  (3)在测试计划中添加线程组,在线程组中添加-配置元件-JDBC Connection Configuration 在JDBC Connection Configuration中配置变量名称Variable Name,数据库URL(数据库 连接) jdbc:mysql://192.168.2.2:3306/test(mysql的固定格式), JDBC Driver class配置为:com.mysql.jdbc.Driver(也是固定格式)以及Mysql的账号密码:  (4)在线程组中添加-Sampler-JDBC Request,在其中设置变量名Variable Name(需要与JDBC Connection Configuration中的变量名一致,因为涉及到互相调用)然后在SQL Query中 输入查询语句,查询数据库表中我们需要调用的几列资源(通过字段名),然后在下方 Variable Name中自己给查询的资源列设置变量名 (5)在线程组中添加-逻辑控制器-循环控制器。在循环控制器下级目录添加-配置元件-计数 器,在计数器中配置技术参数以及引用名称,启动为1代表从查到的第一条数据开始  (6)循环控制器下级目录中添加HTTP请求。填写参数,参数中需要调用Sampler-JDBC Request中定义的变量以及计数器中的引用名称M,因为需要两次调用${xingming_${M}} 代表引用数据库中的xingming列中的第M行。系统无法解析,需要用到函数助手中的 V函数,将两次调用改为${_V(xingming${M})  (7)在线程组中添加-监听器-察看结果树,然后点击运行查看最后的运行结果 最后实现结果:调用数据库中的姓名和电话号码来批量注册14次账号 Cookie元件(维护登录状态)(1)在测试计划中添加线程组,线程组中添加HTTP cookie管理器HTTP请求察看结果树 (2)在火狐中登录,然后浏览器打开F12找到cookie,然后将参数(名称、值、域、路径) 复制,将复制的参数填入到cookie的里   (3)在网页中加入购物车,然后通过抓包抓到接口。将参数信息填入HTTP请求中 (4)点击运行,然后在网页中查看效果。 HTTP信息头管理器*/*添加图片(1)在jmeter中添加线程组,线程组中添加HTTP信息头管理器、HTTP请求、察看结果树。 (2)浏览器中打开页面留言,然后使用工具抓包获取留言成功的接口,复制参数,去其他的只剩参数名称和值。将图片那两行参数删除。然后打开Files Upload将图片那两行信息的参数名称和类型添加到Files Upload的参数名称和MIME类型内。文件名称填写自己电脑上图片位置的完整路径。如:C:\Users\Administrator\Desktop\test.png。然后将HTTP请求中Implementation改为HttpClient3.1,方法改为POST,并勾选Use multipart-data for POST  (3)在fiddler中抓取留言页,然后打开Inspectors-Headers右键单击其中内容选择复制全部 信息头(Copy All Headers),然后在HTTP信息头管理器中将复制的全部信息头添加到参 数中 (4)点击运行查看结果 测HTTPS方法将HTTP请求中的协议改为https 端口号改为443 Postman安装先安装.Net4.5,然后安装postman Postman使用Postman主要用来测试接口是否可用,使用断言来判断通过的数量以及不通过的数量 在postman中输入网址,参数、tests点击send查看结果。 |
|