spring mvc 设置允许responsebody序列化SerializationFeature.WRITE_DATES_AS_TIMESTAMPS

问题:
使用spring boot 2.0 后, 较新的spring mvc HttpMessageConverters 如果存在jackson 库时,则默认使用自动配置的Jackson2ObjectMapperBuilder生成的转换器对消息进行转化。 序列化的结果可能并不是我们期望的,这时我们需要通过设置。 spring的官方文档地址: https://docs.spring.io/spring-boot/docs/current/reference/html/howto-spring-mvc.html#howto-customize-the-jackson-objectmapper
更多…

vue+iviewui menu+tabs联动及tabs切换总结

因为试着开发一个含有前端的平台软件,所以学习了下前端框架。 纯属巧合接触到了vue(据网上查找资料,国内使用vue的相对更多)。作为一个vue新手,本着目的为导向,对vue的基础知识掌握的并不是很牢靠。凭着一点点的代码编写和逐渐的解决问题,终于有了一点眉目。 这里我使用了iviewui ui vue 组件(国人开发) ,简单的完成了menu(左侧菜单)和 tabs 联动,以及tabs之间跳转切换的功能。实现了我当初计划的功能。

这个平台前端页面分为3大块区域。 顶部菜单,左侧菜单,内容区(由iviewui 的tabs 实现)。
更多…

maven 编译单元测试用例代码但不执行

-Dmaven.test.skip=false -DskipTests=true

因为pom.xml 中设置了maven.test.skip为true后, 测试代码也不进行编译,也不进行执行。 但是因为我们需要手动执行单元测试,那么我们只能在mvn构建的时候手动指定 -Dmaven.test.skip=false -DskipTests=true, 这样可以保证单元测试代码,只是不执行而已。 这样我们用eclipse时,编译了单测代码后我们就可以右键选择想要执行的测试代码执行。 否则会提示class not found(测试代码未编译导致)

使用github pages作图床

github pages是用来给项目做网站的一个功能. 关于github pages的介绍,可以看官方链接 https://help.github.com/en/articles/what-is-github-pages . github 一个代码仓库官方并没有给出存储大小限制, 当超过1G空间的时候会发一个提醒邮件,提示您减少代码仓库的大小. 单文件不能超过100M大小, 通过web上传则最大的大小是25M大小. 按照1G空间, 假设我们的图片大小100K一张(网站用途,非raw和高清大图片),那么我们一个github 代码仓库可以存放1024×1024/100=10485.76 四舍五入话,那么可以存放10485张图片. 那么下面我们介绍一下,如何使用github pages实现图床.
更多…

maven findbugs扫描并仅保留高优先级扫描结果

maven findbugs扫描并仅保留高优先级扫描结果。
我们希望将findbugs 扫描的结果联合到一个扫描结果文件,并过滤掉我们不想关注的问题类型, 并发送邮件报告给相应的人员。

  • 1.第一步拉取代码
  • 2.获取到最后一提交人的邮箱地址
  • 3.编译代码和findbugs扫描(指定过滤器)
  • 4.得到结果并合并
  • 5.转换输出报告的格式未html

更多…

sonarqube restfull api

sonarqube 提供了restfull api。 加入我的sonarqube部署到了 http://www.hissummer.com:9000/ 那么,可以直接通过访问 http://www.hissummer.com:9000/web_api/ 查看所有的api 文档。

常用的一些接口如下:

1. 搜索项目
/api/projects/search

2. 搜索指定的某个项目下的所有分析结果
/api/project_analyses/search?project=com.hissummer:test

3. 查看某一个扫描的结果指标值
如下就是获取 com.hissummer:test 该项目下的单元测试分支覆盖率和行覆盖率。
/api/measures/component?metricKeys=branch_coverage,line_coverage&component=com.hissummer:test

关于metrickeys可以通过该接口查询到所有的keys。

4. 查询所有的扫描指标metrickeys
/api/metrics/search

这样我们可以通过接口的方式获取项目的扫描结果,可以用来集成到我们自己内部的项目平台上进行结果展示使用。

navicat导出sql bit字段包含soh字符

在用mysql客户端工具导出或者拷贝成sql语句时,例如在使用navicat,导出的sql可以看到soh字符。

大家可以看到is_from_app = 后面是一个方框,因为这是一个不可见字符,用纯文本编辑工具打开时,会线程一个’soh’ 的占位符。 看了下表结构,is_from_app 是一个bit类型。 且这个值是1。 当是0时,这里显示的’\0’, 1的时候显示 SOH。
更多…

Jmeter用户自定义变量和脚本中var的关系以及处理

Jmeter有个配置元素叫做用户自定义变量(英文名称是User Defined Variables) 而我们提到的vars即是Variables 的简写。
之前我们也说到过Jmeter的脚本中(jsr223 sampler或者beanshell 编写的脚本) 使用vars put和vars get的操作(vars get和put的操作仅在threadgroup 测试组线程中执行,所以结果的改变也仅影响该threadGroup,所以不是跨线程组的。 需要跨线程组的的变量共享则可以使用prop, vars和props 的使用可见 vars和props使用对比1vars和props使用对比2 )。 那“用户自定义变量”和脚本中的vars 操作这2个关系是如何的呢?
更多…

代码行数覆盖和分支覆盖和条件覆盖的区别?

如何对白盒测试质量进行量化,通常就是使用代码覆盖。
line coverage(行数覆盖), branch coverage(分支覆盖),condition coverage(条件覆盖)到底有什么区别呢? 是否行数覆盖100%则意味着分支覆盖100%,条件覆盖100%呢? 如果条件覆盖100%,则是否意味着分支覆盖100%以及行数覆盖100%。

行覆盖,顾名思义代码行数(也可以成为statement 语句)的覆盖。
分支覆盖是指代码if else while等有条件导致的分支时,分支的覆盖情况。
条件覆盖(通常现代定义,例如sonarqube), 是指每一个分支条件表达式里,所有条件的覆盖。

那么我们回到这个问题。 是否行数覆盖100%则意味着分支覆盖100%,条件覆盖100%呢? 如果条件覆盖100%,则是否意味着分支覆盖100%以及行数覆盖100%。 借助这个问题,来更深入看看他们到底有什么区别。
下面举2个例子。
更多…

moco mock server多个配置文件

当我们的mockserver需要的配置项越来越多时, 就会导致该配置文件非常大,每次定位查找和修改时非常困难。 moco mock server支持多个配置文件。
moco 支持多个配置文件的方式有2种方式。
1) 直接启动时指定多个配置文件(不建议)

利用通配符的方式,可以将该目录下所有的*.json 配置文件集合到一起并运行mock server。 问题是,*.json 的顺序并不是严格的按照alphabet的顺序解析配置。 所以比较多的配置文件,对配置的顺序有严格的要求时,建议使用如下的方式。
更多…