Java程序的三种测试方法及工具swagger&Jmeter
Java测试作为软件开发过程中非常重要的一个环节,在不同阶段进行测试能够帮助我们及时发现和解决问题,保证软件质量和稳定性。因此,学习掌握一些广泛使用的测试方法可以帮助开发人员在开发阶段解决代码中的问题。常见的Java测试方法有:单元测试、接口测试(swagger)、并发测试(jmeter)等。
目录
前言
Java测试作为软件开发过程中非常重要的一个环节,在不同阶段进行测试能够帮助我们及时发现和解决问题,保证软件质量和稳定性。因此,学习掌握一些广泛使用的测试方法可以帮助开发人员在开发阶段解决代码中的问题。常见的Java测试方法有:单元测试、接口测试(swagger)、并发测试(jmeter)等。
1、单元测试
单元测试是针对项目中的具体单元(类、方法等)进行测试。它能够提前发现代码运行中的错误,同时也是确保修改代码后没有破坏原有功能的有效方法。通常使用JUnit等测试框架进行单元测试。
具体步骤:
(1)在pom.xml文件中引入单元测试依赖,junit和spring-boot-starter-test

(2)创建单元测试用例 create test

(3)验证测试结果 run test
2、接口测试
在前后端分离开发模式中,api文档是开发人员最好的沟通方式。一般常用到的测试工具有swagger、postman和knife4j等。接口测试具有及时性、规范性、一致性和可测性的特性。
这里主要介绍swagger2(knife4j):
knife4j是什么?
Knife4j是一个集Swagger2 和 OpenAPI3 为一体的增强解决方案,能够帮助开发者快速聚合使用OpenAPI规范。
与Spring Boot版本兼容性
版本参考网址:Knife4j版本参考 | Knife4j

使用步骤:
引入依赖
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi2-spring-boot-starter</artifactId>
<version>4.1.0</version>
</dependency>
配置yml文件
knife4j:
enable: true
常用注解
在返回对象上使用,如HttpResp类
| 序列 | 注解 | 作用 |
|---|---|---|
| 1 | @ApiModel | 用对象来接收参数 |
| 2 | @ApiModelProperty | 用对象接收参数时,描述对象的一个字段 |
在Controller类和方法上使用
| 序列 | 注解 | 作用 |
|---|---|---|
| 1 | @Api(tags = “Knife4jController接口类”) | |
| 2 | @Api | 修饰整个类,描述api(Controller)的作用 |
| 3 | @ApiOperation | 描述一个类的一个方法,或者说一个接口 |
| 4 | @ApiImplicitParam | 多个请求参数的描述信息 |
| 5 | @ApiImplicitParam(name = “name”,value=”请求的名称”,required = true) | 单个参数的描述信息 |
| 6 | @ApiIgnore | 使用该注解忽略这个API |
| 7 | @ApiError | 发生错误返回的信息 |
其中,注解@ApiImplicitParam的相关属性信息如下
| 序列 | 属性 | 值 | 作用 |
|---|---|---|---|
| 1 | paramType | 查询参数类型 | |
| path | 以地址形式提交数据 | ||
| query | 直接跟参数完成映射赋值 | ||
| body | 以流的形式提交 仅支持POST | ||
| header | 参数在request headers里面提交 | ||
| form | 以form表单的形式提交,仅支持POST | ||
| 2 | dataType | 参数的数据类型 只为标志说明 并没有实际验证 | |
| Long | |||
| String | |||
| 3 | name | 接收参数名 | |
| 4 | value | 接收参数的意义描述 | |
| 5 | required | 参数是否必填 | |
| true | 必填 | ||
| false | 非必填 | ||
| 6 | defaultValue | 默认值 |
项目示例


API测试
http://localhost:配置的端口地址/doc.html

下载查看离线文档

3、并发测试
下载安装jmeter文件,打开:

添加线程组和线程数 ➡ 添加取样器和监听器


启动项目,启动线程组请求,查看结果

数据一致性问题,即不能出现多个重复的结果!

解决办法
可以在方法上+synchronized 来保证线程安全,但是会导致效率下降的问题。
——————————————————————————————————
感谢阅读,码字不易,多谢点赞!如有不当之处,欢迎反馈指出,感谢!

更多推荐



所有评论(0)