找回密码
 会员注册
查看: 39|回复: 0

软件测试--接口测试

[复制链接]

2万

主题

0

回帖

6万

积分

超级版主

积分
64113
发表于 2024-9-13 14:02:05 | 显示全部楼层 |阅读模式
1.接口用例设计接口测试的测试点功能测试单接口功能:手工测试中的单个业务模块,一般对应一个接口登陆业务-->登陆接口加入购物车业务-->加入购物车接口订单业务-->订单接口支付业务-->支付接口借助工具、代码。绕开前端界面,组织接口所需要的数据,展开接口测试业务场景功能按照用户实际使用场景,梳理接口业务场景组织业务场景时,一般只需做正向测试即可(与手工一致)一般建议用最少的用例覆盖最多的业务场景性能测试响应时长吞吐量并发数服务器资源利用率安全测试攻击安全–与测试工程师无关业务安全–测试的方向敏感数据是否加密SQL注入:在用户输入数据的位置,写入SQL语句1.1设计方法与思路与手工测试相同之处手工测试对应的功能测试点与接口测试对应的功能完全一致与手工测试不同之处手工测试,测写入到输入框中的数据是否正确。接口测试测参数对应的参数值是否正确接口测试,不单单针对参数值进行进行,还可以针对参数本身进行测试正向参数:必选参数:所有的必选(必填)都包含组合参数;所有的必选+任意一个或多个可选参数全部参数:所有的必选+所有的可选参数反向参数:多参少参无参错误参数1.2单接口测试用例手工测试用例文档8大要素:用例编号、用例、模块、优先级、预置条件、测试数据、操作步骤、预期结果接口测试用例文档10要素:用例编号、用例、模块、优先级、预置条件、请求方法、URL、请求头、请求体(请求数据)、预期结果以TPShop为例登陆模块的接口测试用例测试点数值正向登录成功用例编号模块用例名称接口名称请求URL请求方法请求参数类型请求参数预期结果测试结果备注tpshop_login_001登陆登陆成功获取验证码登陆http://106.54.9.13/index.php?m=Home&c=User&a=verifyhttp://106.54.9.13/index.php?m=Home&c=User&a=do_loginGETPOSTformdata={“username”:"18184761327",“password”:“123456”,“verify_code”:8888}获取到验证码图片登陆成功反向用户名为空用户名包含特殊字符、字母用户名超过11位(12位)用户名不足11位(10位)用户名未注册密码为空密码包含特殊字符、字母密码为1位密码为100位密码错误用例编号模块用例名称接口名称请求URL请求方法请求参数类型请求参数预期结果测试结果备注tpshop_login_002登陆账号不存在获取验证码登陆http://106.54.9.13/index.php?m=Home&c=User&a=verifyhttp://106.54.9.13/index.php?m=Home&c=User&a=do_loginGETPOSTformdata={“username”:"18184761327",“password”:“123456”,“verify_code”:8888}获取到验证码图片账号不存在tpshop_login_003登陆密码错误获取验证码登陆http://106.54.9.13/index.php?m=Home&c=User&a=verifyhttp://106.54.9.13/index.php?m=Home&c=User&a=do_loginGETPOSTformdata={“username”:"18184761327",“password”:“123456”,“verify_code”:8888}获取到验证码图片密码错误参数(接口测试特有)正向必选参数:正确用户名+正确密码可选参数:忽略全部参数:正确用户名+正确密码反向多参:多"abc":“123”少参:少username,正确密码无参:没有任何参数错误参数用例编号模块用例名称接口名称请求URL请求方法请求参数类型请求参数预期结果测试结果备注tpshop_login_001登陆登陆成功获取验证码登陆http://106.54.9.13/index.php?m=Home&c=User&a=verifyhttp://106.54.9.13/index.php?m=Home&c=User&a=do_loginGETPOSTformdata={“username”:"18184761327",“password”:“123456”,“verify_code”:8888}获取到验证码图片登陆成功tpshop_login_002登陆用户名为空获取验证码登陆http://106.54.9.13/index.php?m=Home&c=User&a=verifyhttp://106.54.9.13/index.php?m=Home&c=User&a=do_loginGETPOSTformdata={“username”:"",“password”:“123456”,“verify_code”:8888}获取到验证码图片账号不存在tpshop_login_003登陆多参数获取验证码登陆http://106.54.9.13/index.php?m=Home&c=User&a=verifyhttp://106.54.9.13/index.php?m=Home&c=User&a=do_loginGETPOSTformdata={“username”:"18184761327",“password”:“123456”,“verify_code”:8888,“abc”:“123”}获取到验证码图片密码错误tpshop_login_003登陆密码错误获取验证码登陆http://106.54.9.13/index.php?m=Home&c=User&a=verifyhttp://106.54.9.13/index.php?m=Home&c=User&a=do_loginGETPOSTformdata={“username”:"18184761327",“password”:“123456”,“verify_code”:8888}获取到验证码图片密码错误tpshop_login_001登陆无参数获取验证码登陆http://106.54.9.13/index.php?m=Home&c=User&a=verifyhttp://106.54.9.13/index.php?m=Home&c=User&a=do_loginGETPOSTformdata={“username”:"18184761327",“password”:“123456”,“verify_code”:8888}获取到验证码图片登陆成功1.3业务场景测试用例用户怎么用,怎样设计业务用最少的测试用例,尽量覆盖最多的接口分析测试点针对“员工管理”业务场景登陆–添加员工–查询员工–修改员工–再次查询–删除员工–查询员工列表针对每个业务设计单接口用例​登陆​添加员工-​查询员工​修改员工​再次查询​删除员工​查询员工列表2.postman2.1简介和安装简介postman是一款非常流行的接口调试工具,它使用简单,而且功能也很强大。不仅测试人员会使用,开发人员也会经常使用特征简单易用的图形用户界面可以保存接口请求的历史记录使用测试集collection可以更有效的管理组织接口可以在团队之间同步接口数据2.2collection管理测试用例步骤:创建用例集addrequest2.3postman断言2.3.1postman断言简介断言:让程序判断预期结果和实际结果是否一致特点:postman的断言是使用JavaScript语言编写的,卸载’Tests’标签页里Tests中的脚本在发送请求之后执行,会把断言的结果(Pass/Fail)最终在"TestResults"标签页中展示2.3.2常用postman断言Statuscode:Codeis200//判断响应状态码是否等于200pm.test("Statuscodeis200",function(){pm.response.to.have.status(200);});pm:postman的一个实例test():postman实例的一个方法 参数1:断言完成后给出的提示信息参数2:function(){},匿名函数调用123456789Responsebody:Containsstring//判断响应体中是否包含指定的字符串pm.test("Bodymatchesstring",function(){pm.expect(pm.response.text()).to.include("string_you_want_to_search");});pm:postman的一个实例test():postman实例的一个方法 参数1:"Bodymatchesstring"断言完成后给出的提示信息参数2:function(){},匿名函数调用 "string_you_want_to_search":判断是否包含的字符串123456789Responsebody:Isequaltoastring//判断响应体数据是否等于指定的字符串pm.test("Bodyiscorrect",function(){pm.response.to.have.body("response_body_string");});pm:postman的一个实例test():postman实例的一个方法 参数1:"Bodyiscorrect"断言完成后给出的提示信息参数2:function(){},匿名函数调用 "response_body_string":判断响应体是否相同的字符串123456789Responsebody:JSONvaluecheck//校验响应的JSON数据pm.test("Yourtestname",function(){varjsonData=pm.response.json();pm.expect(jsonData.value).to.eql(100);});pm:postman的一个实例jsonData:定义的一个json格式的响应体变量test():postman实例的一个方法 参数1:"Bodyiscorrect"断言完成后给出的提示信息参数2:function(){},匿名函数调用 "response_body_string":判断响应体是否相同的字符串123456789101112Responseheaders:Content-Typeheadercheck//判断相应头中是否包含指定的头标签pm.test("Content-Typeispresent",function(){pm.response.to.have.header("Content-Type");});12342.4全局变量与环境变量2.4.1概念全局变量:全局变量是全局唯一的,不可重复定义的变量环境变量:一个变量只能属于某个环境,在某一个环境中变量不可重复定义在环境与环境之间可以定义重复的变量一个环境可以包含多个环境变量常见环境分类:开发环境、测试环境、生产环境2.4.2设置变量全局变量手动测试代码设置:pm.globals.set(“var_name”,value);环境变量手动测试代码设置:pm.environment.set(“var_name”,value);2.4.3获取变量值全局变量请求参数中获取:{{var_name}}代码中获取:varvalue=pm.globals.get(“var_name”);环境变量请求参数中获取:{{var_name}}代码中获取:varvalue=pm.environment.get(“var_name”);2.5postman请求前置脚本假设,这样一种场景:​调某接口时,要输入“时间戳”,如果输入的“时间戳”的绝对值,超过标准时间10分钟。则不允许调用时间戳:表示当前系统时间。表示方式:从1970年1月1日00:00:00~现在所经历的秒数请求前置脚本:书写在“pre-requestScript”标签中Postman在http请求发送之前,会自动执行,该脚本中的代码!案例调用百度首页接口,传时间戳给服务器步骤:创建“请求前置脚本”用例集和http请求页指定请求方法GET,URL:http://www.baidu.com在Pre-requestScript标签页中,写入代码,获取时间戳,写入到全局变量中//获取时间戳vartimestamp=newDate().getTime()//将时间戳保存到全局变量中pm.globals.set("glb_timestamp",timestamp)12345点击Send按钮,促使Pre-requestScript标签页中被自动执行。点击右上角的“眼睛”图标查看Globals中,多出一个全局变量。在URL中,借助查询参数,使用全局变量{{glb_timestamp}}。点击Send按钮,发送带有时间戳的请求。查看(View-ShowPostConsole)2.6postman关联postman的关联,用来解决接口和接口之间调用的依赖关系。需要借助全局变量、环境变量来解决关联问题。实现步骤:(以A接口返回的数据,供B接口使用为例)组织A接口http请求,发送A接口请求获取A接口返回的响应数据,写入全局/环境变量中组织B接口的请求,从全局/环境变量中获取A返回的数据案例请求获取天气接口,提取响应结果中的城市,将城市名,给百度搜索接口使用实现步骤创建用例集和请求页面组织天气接口的请求方法、URL,发送http请求获取响应结果的json数据,从数据中提取城市名,保存到全局变量中glb_city//获取响应数据varjsonData=pm.response.json();//获取城市名varcity=jsonData.weatherinfo.city//写入全局变量pm.globals.set("glb_city",city)123456点击小眼睛查看全局变量是否设置正确组织百度搜索接口的请求方法、URL,在查询参数中,指定使用全局变量{{glb_city}}2.7批量执行测试用例步骤点击用例集名称,选择“Run”按钮,进入Runner标签页中在Runner标签页中,用例集内的所有请求页会被默认自动选中点击Run,即可批量执行运行结果:2.8postman测试报告使用newman命令,运行导出的测试集脚本,打开cmd输入:newmanrun测试脚本文件-e环境变量文件-d测试数据文件-rhtml--reporter-html-exportreport.htmleg:newmanrundemo.postman_collection.json-rhtmlnewmanrundemo.postman_collection.json-rhtml--reporter-html-exportreport.html12345命令说明:runxxx.json:表示要执行的postman脚本,即导出的测试集数据-esource:用来指定环境变量文件的路径-dsource:用来指定测试文件的路径生成报告步骤:导出用例集在用例集所在目录,输入cmd打开终端键入命令,生成报告F:\Four_year\测试\postman>newmanrunpostman关联.postman_collection.json-rhtml--reporter-html-exportpostman关联报告.html1点击查看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-26 12:40 , Processed in 0.574628 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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