Skip to content

Latest commit

 

History

History
43 lines (23 loc) · 5.59 KB

09_接口测试与jmeter.md

File metadata and controls

43 lines (23 loc) · 5.59 KB

接口测试

接口流程

从开发那拿到接口文档 (word,在线),熟悉接口业务,比如说像接口的内容,接口的功能,接口的地址和请求方式,参数类型,约束限制 ,返回的数据格式 (内容),状态码,示例模板以及接口之间存在的依赖关系等,了解熟悉后我们会进行接口用例设计,设计完成之后我们会进行接口测试,我们通常使用 jmeter 工具进行接口测试,接口测试完成后输出接口测试报告。

测试接口用例如何设计?

主要考虑接口的出参和入参,入参主要考虑参数的默认值,必填项,长度,组成规则,数据类型和业务约束。出参主要考虑返回数据的准确性,以及数据排序规则,除此之外还要考虑接口本身的业务限制,还有幂等性测试,越权访问,token 失效验证,错误状态码的覆盖还要考虑接口新旧版本的兼容性。

jmeter (接口测试工具) 是如何使用的?

首先我们在 jmeter 的测试计划下,会新建一个 http 请求默认值,来填写接口所用到的域名和端口号,然后在测试计划下面添加线程组,在线程组下添加 http 信息头管理器,添加该接口请求时必要的头信息,比如 token 值,如果参数是 json 格式还需要添加 content-type 为 application/json 格式,然后添加 http 取样器,在取样器中输入接口路径,请求方式,参数等内容,还可以将设计好的测试用例,通过 csv 参数化的方式传入到请求的参数中,如果接口间有相互调用 (关联) 关系,比如上一个接口返回的数据要在下一个接口中使用,我还会用到关联技术,通过后置处理器中的 json 提取器或正则表达式提取器提取参数数据保存在变量当中,在需要调用的地方,输入 ${}的方式进行调用,如果是跨线程组关联的话还需要用到 Setproperty 函数和 Bean Shell 取样器,将局部变量提升为全局变量,然后添加断言来判断响应结果的正确性,最后添加查看结果树来查看结果。

接口测试的重点和难点是什么?

重点:分析好接口内容,了解好接口的功能,还有接口之间的关系,还有各个参数和返回信息的含义。 难点:要对前后端业务处理逻辑非常清楚,知道接口传递的参数哪些是必要的,哪些是必须返回的数据,还有了解接口之间的依赖关系.

接口测试中发现 bug 可能是什么?

1.接口参数没有进行异常处理,有些空值,组成规则不对的,边界值超长,缺参的情况,没有给出正确的错误提示, 2.返回的敏感信息没有加密,比如说用户的身份证,姓名,银行卡信息没有加密,加密后前端解密再展示给用户看。 3.没有进行恶意的请求拦截,被人可以对我们进行恶意攻击,一直给我们接口压力,我们做的是每分钟同一个 IP 地址只能提交 120 次 4.接口性能问题,某一个接口并发,同一时间,如果提交多条数据,响应时间过长,有请求报错的情况。

怎么验证接口是正确的?

要验证接口返回数据的准确性,接口返回内容是否准确,出参的参数没有缺失,排序规则正确,还要去数据库进行验证 确认接口返回的状态码正确,包括正常和异常,接口返回的数据与提示信息是否准确,接口返回数据的排序是否正确,最后验证返回数据和数据库中数据是否一致。

接口自动化怎么实现的?

通过 jmeter 来实现接口自动化,首先从开发那拿到接口文档,了解接口的内容,功能业务和接口之间相互关系,接着编写接口测试用例,在 jmeter 中添加脚本,首先对公共信息添加请求默认值,比如协议,域名,端口号,字符集等,然后给每个接口添加一个线程组,如果有请求头信息,还需添加请求头管理器,比如有些接口需要 token 值,或请求体格式为 content-type 为 application/json,接下来在线程组中添加 http 取样器,通过 csv 参数化的方式进行接口测试数据参数化,并调整线程组循环次数,与参数化参数数量一致,如果接口之间有相互关联关系我们还需要用到关联技术,比如上个接口返回的数据要在下个接口中使用,要用到 json 提取器或正则表达式提取器对返回数据进行提取,通过 setproerty 和 Bean shell 提升为全局变量,使用 property 函数在使用的地方调用,添加断言判断响应信息的准确性,最后通过 nat 工具自动生成测试报告。

接口测试报告怎么写的

使用 ant 自动生成测试报告,下载配置 ant 环境变量,创建 ant 所需的 build. Xml 文件,在文件中填写 jmeter 脚本路径、结果输出路径、测试报告输出路径,修改 jmeter 配置文件,将返回数据限制打开,在 build. Xml 文件所在路径在终端中使用 ant 输出测试报告。

如何搭建测试环境

主要由运维搭建,我也搭建过几次,通过宝塔面板搭建的,首先通过宝塔一键安装 lnmp 服务器架构。

前后端不分离的项目,先创建站点,在站点的路径导入代码包并解压,之后初始化数据库,通过 switchhost 进行域名解析,之后就可以使用了。

前后端分离的项目,java 相关项目,先安装 jdk 和 tomcat,然后在新建站点目录下导入后端代码包,再导入前端静态代码,最后初始化数据库配置好 nginx 代理,比如代理后端的接口地址,进行域名解析后就可以访问。