自动化工具 rabbit 自动化测试平台介绍

兔子 · 2019年12月18日 · 最后由 ZYH 回复于 2023年01月15日 · 9068 次阅读

前言

很多公司都需要一个自己的测试平台,用来减少测试人员实现自动化测试的成本。并且便于项目的管理。Rabbit,就是一个集 UI、接口、app、性能测试与一体的自动化测试管理平台。目前 UI 自动化测试模块已正式开发完成

  • UI 自动化和平台化,最大的难点在于在线调试、功能拓展 和 简洁直观的测试报告。而 rabbit 则解决了这一切的难点。
  • UI 自动化采用关键字驱动,测试人员无需任何代码基础,即可轻松完成复杂的自动化测试工作。
  • 并且可以实时在线进行调试。
  • 加入了定时任务和自动发送测试报告邮件功能,简洁大方的测试报告,使 UI 自动化持续化,可视化
  • 实现了页面元素,用例,业务分离的设计模式。可以使巨大的 UI 自动化维护成本最小化。
  • 如果你会代码,平台提供了自定义关键字功能。可以实现平台没有提供的功能,理论上可以达到只要是代码能实现的功能都可以实现自动化

服务端演示地址

因为只有一个服务器,所以只能部署服务端,没有执行端执行用例

  1. 项目地址:http://rabbittest.xyz/public/
  2. 测试密码:admin/admin1
  3. gitee 地址:https://gitee.com/tuzikuaipao/rabbit_test_platform_server 觉得项目对你有帮助,gitee 请点下 star。
  4. 项目手册:http://rabbittest.xyz
  5. 好的建议或遇到问题欢迎交流(qq 群:835208549) ## 创建页面和元素

创建页面

创建元素

创建测试用例

创建用例

关键字描述

在线调试

关联测试集

创建定时任务并配置

测试报告

测试报告

详细测试步骤

其他本来想继续写,需要上传图片,今天就暂时就写到这里

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 27 条回复 时间 点赞

感谢作者的无私分享!

感谢分享。和我公司一位同事写的 UI 自动化测试平台非常像,可以互相借鉴经验和学习。

优秀,正好学学 java😂

前端工程木有。。

兔子 [该话题已被删除] 中提及了此贴 12月28日 18:29
兔子 [暂停][美团点评] 招人招人招人 中提及了此贴 12月28日 18:30

必须打赏,怎么打赏呢?

兔子 #12 · 2020年04月15日 Author

@qugo9955 感谢,写这个只是兴趣,然后为找工作留点资本。感谢支持

咦,难道 python 的一大推人看,java 的就无人问津么?

UI 自动化一般

我很不喜欢这种骗子行为,现在这风气不好,说做了 XX X 平台就是为了增加面试时的资本或是和同行间多些谈资吗
https://gitee.com/tuzikuaipao/rabbit_test_platform_server
我看了开源出来的代码,感觉是个壳
controller 我看来全是增删改查,感觉是用工具生成的,然后我看了他接口这个实体类,就下同几个属性,

https://gitee.com/tuzikuaipao/rabbit_test_platform_server/blob/master/src/main/java/com/rabbit/model/TTestInterface.java


我找了整个 model 下的类,页面上这些属性都都地方存
/**
* id
*/
private Long id;

/**
* 接口名称
*/
private String name;

/**
* 业务流 id
*/
private Long businessId;

/**
* 业务流名称
*/
private String businessName;

/**
* 项目 id
*/
private Long projectId;

/**
* 类型 0 公共接口 业务流接口
*/
private Integer type;

/**
* 状态 0 启用 1 禁用
*/
private Integer status;

/**
* 备注
*/
private String remark;

/**
* createBy
*/
private String createBy;

/**
* createTime
*/
private Date createTime;

/**
* 排序
*/
private Integer sort;

/**
* updateBy
*/
private String updateBy;

/**
* updateTime
*/
private Date updateTime;

private static final long serialVersionUID = 1L;
}
我想参数是不是在子类中,没有,我找了,

接口 controller 就这点,
https://gitee.com/tuzikuaipao/rabbit_test_platform_server/blob/master/src/main/java/com/rabbit/controller/InterfaceController.java
/**

  • 接口相关接口
    */
    @Slf4j
    @RestController
    @RequestMapping("/interface")
    @Api(tags = "接口相关接口")
    public class InterfaceController {

    @Autowired
    private TTestInterfaceService testInterfaceService;

    @GetMapping("/listPage")
    @ApiOperation(value = "获取分页带参列表")
    public ResponseInfo getPageList(@RequestParam(value = "pageNum") int pageNum, @RequestParam(value = "pageSize") int pageSize, @RequestParam(value = "serchData") String serchData) {
    JSONObject jsonObject = JSONObject.parseObject(serchData);
    TTestInterface testInterface = JSONObject.toJavaObject(jsonObject, TTestInterface.class);
    PageInfo pageInfo = testInterfaceService.findByAllwithPage(pageNum, pageSize, testInterface);
    return new ResponseInfo(true, pageInfo);
    }

    @GetMapping("/listByProjectId/{id}")
    @ApiOperation(value = "获取列表")
    public ResponseInfo listByProjectId(@PathVariable long id) {
    return new ResponseInfo(true, testInterfaceService.findByProjectId(id));
    }

    @PostMapping("/add")
    @ApiOperation(value = "新增")
    public ResponseInfo savaTTestInterface(@RequestBody TTestInterface testInterface) {
    List testInterfaces = testInterfaceService.findByNameAndProjectId(testInterface.getName(),testInterface.getProjectId());
    if (testInterfaces.size() > 0) {
    return new ResponseInfo(false, new ErrorInfo(520, "接口" + testInterface.getName() + "已存在"));
    }
    testInterface.setUpdateBy(UserUtil.getLoginUser().getUsername());
    testInterface.setCreateBy(UserUtil.getLoginUser().getUsername());
    testInterfaceService.insertSelective(testInterface);
    return new ResponseInfo(true, "保存接口成功");
    }

    @PutMapping("/edit")
    @ApiOperation(value = "编辑")
    public ResponseInfo editTTestInterface(@RequestBody TTestInterface testInterface) {
    List testInterfaces = testInterfaceService.findByNameAndProjectIdAndIdNot(testInterface.getName(),testInterface.getProj

作者这要么是不装开源,要么就是装怪,欺负别的人不看代码?

我是基于当前发布的提的疑问 ,如有不对大家拍我就是了,我是特不喜欢这种风气

兔子 #17 · 2021年06月23日 Author

@5itest 建议学一下 java 基础。实体类中使用了 lombok 插件,不需要 get set 方法。

兔子 回复

我当然知道 lombok ,你接口对像中,接口的参数存哪,? Moel 包下,也没看到有别的和他关联的类,请告诉我,你存哪里,get,set 可以没有, 属性得有吧,

兔子 回复

要开源可以不开源最新版,要开就开完全能跑的,伪开源,或是只是个壳 就不好了 。说不好听点,这是 “骗炮” 行为

兔子 回复


请问这几个属性,在接口类的哪里 ???? 如是在和他关联的对像里有这几个属性,请指出来是哪个实体类,lombok 只是省了 set get ,难道他能 自动给你加属性?

兔子 回复

请指出来,接行接口调用的代码在哪里 ,不要放一个壳子,

兔子 #22 · 2021年06月24日 Author

@5itest 这个代码就是能跑的,没少一行代码。如果非要拿自己的无知当成资本,我也无话可说。另外告诉你,你找的代码入口都错了,真的控制层路径是在 com.rabbit.controller.ApiController,别说了,我觉得都难为情

兔子 #23 · 2021年06月24日 Author

@5itest 别人点 start 的人不是傻子,至少也几百了,我从来没有要求那个点 star。你可以看看这个项目我闲置多久了。我能骗你啥。你有啥可骗的。我还是第一次遇到你这种奇葩

兔子 回复

不说了,最后一次回复 ApiController 里调用的是这个,笑死人了,这种代码,
https://gitee.com/tuzikuaipao/rabbit_test_platform_server/blob/master/src/main/java/com/rabbit/service/Impl/ExcApiServiceImpl.java

行不行不是你说了算,也不是我说了算,骗取不骗跑,大家明见
骗不骗对我没什么损失,我只是看到这种行为,这种风气不行,说出真相
连接口用到的参数都没地方体现,这能生产用??? 这要是测试接口能好使就有鬼了
装 B ,被人揭穿了,还说别人无知,这才是无知的表现,

兔子 #25 · 2021年06月25日 Author

@5itest 你是傻缺吧,自己看不懂代码,就别看

仅楼主可见

我也来说句实话,现在大家都在做流量,风气太差了。
嘴上说的开源,实际上是在圈流量,
再偷偷的告诉你,很多开源的作者都是做培训机构的,哈哈,比如什么师。

兔子 #28 · 2021年12月10日 Author

@kingTester 我好像没有做收费的东西吧

codes 回复


应该是有的呀

咋部署啊

请教下,UIweb 自动化,我看有个调试功能?如何调试呢?是在用户本客户端调起游览器执行调试?还是在平台服务器上执行调试的?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册