UI.Vision Kantu-基于Selenium的浏览器自动化工具

之前简单介绍过Selenium框架在Java中的简单应用(查看文章),用来做基于webDriver的自动化测试非常方便。但是通过硬编码的方式虽然简单,但是也还是要写不少的代码的,今天发现了一款基于Selenium的浏览器自动化插件,支持录制和回放,完全可以将网页中的一些重复的操作录制下来,解放双手。

下载地址

https://chrome.google.com/webstore/detail/uivision-kantu-for-chrome/gcbalfbdmfieckjlnblleoemohcganoc?hl=zh-CN

使用案例:批量添加数据

1) 新建宏指令

在需要操作的页面,打开UI.Vision Kantu然后新建宏指令
image.png

MySQL7新特性之JSON数据类型

MySQL 5.7.8开始,原生提供了一个JSON类型的数据格式,在此之前类似的需求都是需要通过VARCHAR的方式来存储处理的。

  • JSON数据类型,拥有自动校验格式功能;
  • 提供操作JSON数据的内置函数;
  • 优化的存储格式,存储在JSON列中的JSON数据被转换成内部的存储格式,允许快速读取;
  • 支持修改JSON对象的特定属性,而不需要更新整个JSON内容;
  • 支持创建JSON对象的特定属性索引;

创建表

1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE TABLE user
(
id INT AUTO_INCREMENT,
username VARCHAR(12) NOT NULL COMMENT '用户名',
password VARCHAR(32) NOT NULL COMMENT '密码',
extends JSON NULL COMMENT '扩展信息',
CONSTRAINT user_pk
PRIMARY KEY (id)
)
COMMENT '用户表';

CREATE UNIQUE INDEX user_username_uindex
ON user (username);

直接指定字段的类型为JSON即可。

Canal数据同步中间件初探

MySQL本身是支持主从模式(Master/Slave)的,Master产生的日志(binary log)中记录了所有增删改语句,将日志发送到Slave执行即可完成数据库的增量数据同步操作。

Canal是阿里巴巴开源的一个中间件,他的作用就是解析binary log来完成数据同步的。
源码地址:https://github.com/alibaba/canal

Canal工作原理

image.png

  1. canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议
  2. mysql master收到dump请求,开始推送binary logslave(也就是canal)
  3. canal解析binary log对象(原始为byte流)

使用Serverless + TravisCI 持续构建Hexo博客

之前使用过Netlify持续构建我的Hexo博客,比较方便,但是访问速度太慢了,不敢恭维(点这里看原文
所以考虑迁移到Coding Pages上面来,但是本地构建Nodejs环境还是比较麻烦,需要装一堆东西,这次又研究了一个比较好的方案,大致流程如下:

1) 语雀上编写文章
2) 配置语雀仓库的Webhook通知,当更新文章时通知给Serverless
3) 使用腾讯云提供的Serverless,编写云函数接收Webhook通知,然后通过API的方式触发TravisCI构建
4) Github新建私有仓库,存储Hexo程序源代码,并编写相关的构建 & 发布规则(发布到Coding Pages

SpringBoot与VUE前后端分离最佳实践

前后端分离的开发模式大家都很清楚了,甚是麻烦:

  • 前端启动webpack-dev-server
  • 后端启动接口服务
  • 开启代理服务器,前端通过代理服务器请求后端接口(解决跨域问题)

但是这些东西对于后端来说,太麻烦了,直接把前端打包好的dist文件丢到后端静态服务器里面就好了。
至于前端的webpack-dev-server热部署特性,改完前端代码立即在浏览器生效,对于后端来说有什么用呢?

  • 配置前端项目打包Task
  • 配置后端项目启动Task(执行前端编译、拷贝编译后的静态文件、启动后端)
  • 一键启动
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×