归档文章: Software Testing

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

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

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

更多…

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的顺序解析配置。 所以比较多的配置文件,对配置的顺序有严格的要求时,建议使用如下的方式。
更多…

使用moco搭建mockserver

下载 moco-runner-standalone

http://central.maven.org/maven2/com/github/dreamhead/moco-runner/0.12.0/moco-runner-0.12.0-standalone.jar

如果我们想实现如下的情况,

1. 请求http://localhost:port/we/bobemockedapi 时 我们自定义mock 返回数据

2. 如果请求http://localhost:port/we/* (* 除了 /we/bobemockedapi ) 其他的均自动反向代理到 另外一个服务器 http://realserver/

3. 如果没有匹配到任何规则, 则走默认的mock数据返回。 返回 {“mockserver”:”this is the default response by mock server”}
更多…

Jmeter脚本利用props实现跨线程组的变量或者数据分享以及和vars变量对比

首先我们来看下Jmeter脚本中使用vars和properties的区别 更多…

将本地的http请求转发到fiddler或其他的代理服务器上

服务器间请求时的debug, 通常通过日志分析。 日志量大, 以及日志不完全,非常不利于debug分析定位问题。  通常我们使用抓包工具进行。 但如果我们的服务器之间的协议主要是http 应用层, 则可以使用更灵活的方式。

如果使用tcpdump wireshark等抓包工具, 虽然也可以将所需要的数据抓取并分析。 而且可以抓到更底层的数据。 唯一不方便的是,无法进行mock数据进行返回。 抓包是将网络中的包抓取并拷贝一份, 不同于代理服务,则可以进行man in the middle  工具。 同时也可以利于我们debug和方便的mock测试数据,用于测试工作。  更多…

Jmeter 多个threadgroup 中的配置元件会一次性进行初始化

例如3个threadGroup,每一个threadGroup中都会定义了 一些配置原件,例如 用户定义变量,  jdbc 链接配置等。  当执行testplan(测试计划)时, 这些配置元件会一起初始化, 而且变量是全局共享,不是属于自己threadgroup 独立使用的。   更多…

jmeter application/x-www-form-urlencoded 参数自动添加sign签名参数以及所有参数排序脚本

jmeter application/x-www-form-urlencoded 参数自动添加sign签名参数以及所有参数排序脚本

此脚本为jsr223 beanshell类型的脚本。 具体使用请参见jmeter使用教程。

更多…

jmeter beanshell rsa公钥加密&base64加密脚本

jmeter beanshell rsa公钥加密&base64加密脚本。

使用方法请参加jmeter jsr223 sampler或者preprocessor , postprocessor。

更多…