最近老大需要一个cucumber的测试项目,为不熟悉代码可以写测试用例的同事使用。所以被迫接触学习了一段时间。
cucumber 用Given When Then 关键字写feature,所以用cucumber的时候,需要先设计好feature的逻辑结构:eg
call api可以用 rest-assured jar来实现,支持jsonpath(rest-assured自带的jsonpath,也可以用
<!--<dependency>-->
<!--<groupId>com.jayway.jsonpath</groupId>-->
<!--<artifactId>json-path</artifactId>-->
<!--<version>2.4.0</version>-->
<!--</dependency>-->
)。并且cucumber内嵌Gson, 也支持多线程fyi。但是对于很复杂的json结构,写起来比较麻烦,很难实现。所以我在项目中具体实现的时候,是将json转为对象去处理,灵活度不够,但是处理起来简单省事。
在项目中遇到几个典型的问题,分享记录一下:
1 json转对象时,date转化出错
解决办法1 将对象中的date类型的属性转为String
2 去掉json中的date数据
String json1 = str.replaceAll(".*"([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})","," ");
String json2 = json1.replaceAll(", .*"([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})""," ");
String json3 = json2.replaceAll(".*"([0-9]{4})-([0-9]{2})-([0-9]{2})","," ");
String json = json3.replaceAll(", .*"([0-9]{4})-([0-9]{2})-([0-9]{2})""," ");
在处理时,需注意json中的逗号问题,比如在处理
"date1": "2015-05-05T00:00:00",
"date2": "2015-05-05T00:00:00"
时,第一个是尾部有逗号需要去掉,第二个是尾部没有逗号,但是需要去掉前面的逗号。
2 java.lang.SecurityException: Invalid signature file digest for Manifest main exception when run jar package;
解决办法:
3 javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path exception when call api.
解决办法:
暂时就这么多