• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

bugcloud-junit-core: 自动化单元测试框架,自动生成SpringBoot项目WEB接口测试类,自 ...

原作者: [db:作者] 来自: 网络 收藏 邀请

Bugpush-JUnit-Core

介绍

BugCloud Junit CoreBugCloud推出的Java单元测试功能包,目标是用最少的代码完成单元测试,减少开发人员在单元测试过程中的代码开发量,并可将测试结果发送到BugCloud云平台,提高软件开发、Bug修复及项目管理交付的效率。

连接

软件架构

BugCloud Junit Core 以Spring Boot 2、JUnit 4 为基础,添加测试报告推送、扫包自动创建测试类功能,使开发人员可以通过添加简单注解快速进行单元测试。

BugCloud JUnit Core架构图

安装

Gradle
testImplementation 'com.bug-cloud:bugcloud-junit-core:0.0.2'
Maven
<dependency>  <groupId>com.bug-cloud</groupId>  <artifactId>bugcloud-junit-core</artifactId>  <version>0.0.2</version>  <type>module</type></dependency>

使用说明

测试前的准备

如果需要在单元测试完成后,将测试失败的用例结果提交到BugCloud云平台,需登陆官网开通账号,相关步骤如下:

  1. 访问 http://www.bug-cloud.com 注册账号。
  2. 创建组织。
  3. 创建测试应用。
  4. 在应用设置页面,获取appKey、appSecret参数,用于在单元测试完成后提交报告。
API说明
AutoTestScan 类注解

用能:
用于提供自动测试的相关参数。

参数说明:

参数名类型是否必填功能描述
packageName字符串指定扫描的包名称。
PushReport 类注解

用能:
在测试完成后,将失败的测试结果发送到BugCloud云平台
参数说明:

参数名类型是否必填功能描述
appKey字符串应用配置中的Key。
appSecret字符串应用配置中的安全码。
pusher字符串推送人的登陆名。
handler字符串问题处理人的登陆名。
isPush布尔型是否推送问题报告到BugCloud云平台,默认值为true推送。
RandomParameter 方法注解

用能:
此注解需要与@RunWith(BugCloudAutoSpringSuite)一起配合使用,BugCloudAutoSpringSuite类用来扫描功能类后动态创建测试用例,RandomParameter用于计算某个测试方法的参数值。当用户没有实现RandomParameter时,测试方法的参数会根据数据类型随机赋值。
参数说明:

参数名类型是否必填功能描述
className正则表达式指明哪个测试类名接收此方法的返回值,如果为空,代表所有测试类都接收此值。
methodName正则表达式指明哪个测试方法名接收此方法的返回值,如果为空,代表所有测试方法都接收此值。
parameterName正则表达式指明测试方法中的哪个参数名接收此方法的返回值。

在测试一些业务功能时,如删除指定Id的数据信息,这时需要传递指定的Id值做为参数,采用随机赋值测试的方法就行不通了,此时就可以通过RandomParameter注解,指定哪一个测试类、哪一个测试方法的哪个参数来返回这个固定Id值。
另外需要注意RandomParameter注解的方法必须有返回值。

BugCloudRunner 类

BugCloudRunner注解继承于BlockJUnit4ClassRunner类,主要功能用于在测试完成后,将测试结果上传到BugCloud云平台。此注解需要配合PushReport注解一起使用,才能提交报告。

@RunWith(BugCloudRunner.class)@PushReport(appKey = "********-****-****-****-********", appSecret = "********-****-****-****-********", pusher = "推送用户登陆名",handler="处理用户登陆名")public class BugCloudRunnerTest {	@Test	public void testFalse() {		Assert.assertTrue(false);	}}
BugCloudSpringRunner 类

BugCloudSpringRunner继承于SpringJUnit4ClassRunner类,功能与BugCloudRunner类相同,主要用于在测试完成后,将测试结果上传到BugCloud云平台

@RunWith(BugCloudSpringRunner.class)@PushReport(appKey = "********-****-****-****-********", appSecret = "********-****-****-****-********", pusher = "推送用户登陆名",handler="处理用户登陆名")@WebAppConfiguration@SpringBootTest@Transactionalpublic class BugCloudSpringRunnerTest {	private MockMvc mock;	@Autowired	private WebApplicationContext webContext;		@Before	public void init() {		mock = org.springframework.test.web.servlet.setup.MockMvcBuilders.webAppContextSetup(webContext).build();	}		@Test	public void testGetAllUsers() throws Exception {		MockHttpServletRequestBuilder builder = MockMvcRequestBuilders.get("/users")				.contentType(MediaType.APPLICATION_JSON);		mock.perform(builder).andExpect(MockMvcResultMatchers.status().isOk())				.andDo(MockMvcResultHandlers.print())				.andReturn().getResponse().getContentAsString();	}}
BugCloudAutoSpringSuite 类

BugCloudAutoSpringSuite继承于Suite套件类,测试时会扫描Java包中的Controller层,动态创建Controller测试类,将其中带有GetMapping、PostMapping、PutMapping、DeleteMapping、RequestMappping注解的方法自动生成测试方法进行单元测试。

@RunWith(BugCloudAutoSpringSuite.class)@AutoTestScan(packageName = "com.bugcloud.junit.demo")@PushReport(appKey = "********-****-****-****-********", appSecret = "********-****-****-****-********", pusher = "推送用户登陆名",handler="处理用户登陆名")@Transactionalpublic class BugcloudJunitDemoApplicationTests {	/**	 * 计算接口方法中,参数名包含Id的字符型的返回值。	 * 	 * @return	 */	@RandomParameter(parameterName = ".*Id.*")	public String userId() {		return UUID.randomUUID().toString();	}	/**	 * 计算接口方法中,参数名等于name的的返回值。	 * 	 * @return	 */	@RandomParameter(parameterName = "name")	public String name() {		String[] names = { "唐玄奘", "孙悟空", "猪八戒", "沙悟净" };		return names[(int) (Math.random() * names.length)];	}}

BugCloud云平台

BugCloud云平台用于项目的自动化测试与管理,当BugCloud Junit Core单元测试报告提交后,可在应用中进行问题的修复。问题界面如下:

问题列表

计划目标

2021年,我们将一起努力拥有更多的能力,为所有工作在一线的兄弟姐妹提供更便捷、更可靠的服务与平台,为中国软件事业的腾飞保驾护航。

  • 实现提供不同行业、不同平台的测试用例模版能力,使开发团队可以快速、全面的构建测试场景。
  • 提供更多基于功能、性能、安全方面的测试工具。
  • 推出基于容器技术的在线自动化测试的能力。
  • 成立线上专家部门,提供线上人工测试服务的能力。
  • 打造用户认证等级体系,提供线上线下认证培训服务。

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap