5.3.2 商品列表断言 1 使用响应断言 1)右键点击商品列表HTTP请求,选择“添加->后置处理器->正则表达式提取器”。按照图15进行设置。
图15 获得商品列表信息
运行,在查看结果的取样器中可以获得所有的匹配参数,如图16所示。
图16 匹配到的所有商品列表信息
2)右键点击商品列表HTTP请求,选择“添加->断言->响应断言”。按照图17进行设置。
图17 商品列表信息响应断言
运行后没有发生异常。对于响应断言将在第5.3-1节中进行详细介绍。 2 使用BeanShell断言 1)右键点击商品列表HTTP请求,选择“添加->断言->BeanShell断言”。按照图18书写断言代码。
图18 商品列表BeanShell断言
2)修改名称:商品列表BeanShell断言,然后在脚本中输入如下代码。
//获取系统变量
String name1 = vars.get("name_1");
String name2 = vars.get("name_2");
String name3 = vars.get("name_3");
String name4 = vars.get("name_4");
String name5 = vars.get("name_5");
String name_matchNr = vars.get("name_matchNr");
//判断返回值是否和预期一致
Failure = false;
if (! name1.equals("正山堂茶业 元正简雅正山小种红茶茶叶礼盒装礼品 武夷山茶叶送礼")){
Failure = true;
FailureMessage = "name1信息与预期不符合";
}else if(! name2.equals("红茶茶叶 正山小种武夷山红茶170g 春茶袋装170g散装新茶")){
Failure = true;
FailureMessage = "name2信息与预期不符合";
}else if(! name3.equals("晋袍 花蜜香正山小种红茶 300g牛皮纸袋装礼盒 武夷山桐木关包邮")){
Failure = true;
FailureMessage = " name3信息与预期不符合";
}else if(! name4.equals("正山小种红茶特级 新茶 礼盒装 桂圆香 送礼红茶暖养胃茶叶250g")){
Failure = true;
FailureMessage = "name4信息与预期不符合";
}else if(! name5.equals("2016春茶 武夷红茶 桐木关 野生红茶 正山小种 包邮 办公室用茶")){
Failure = true;
FailureMessage = "name5信息与预期不符合";
}else if(!name_matchNr.equals("5")){
Failure = true;
ailureMessage = "name_matchNr信息与预期不符合";
}
运行后没有发生异常。由此可见BeanShall断言虽然掌握起来有一定难度,但是它的功能更强大的。对于BeanShell断言将在第5.3-2节中进行详细介绍。 注意:在正常的工作中,使用响应断言和BeanShell断言二者选其一即可,不需要全上。但是我个人觉得在这里建议使用BeanShell断言。 3.3 新版本商品列表 在新的版本中,仅从服务器端下载XML文件,然后通过HTML文件的解析,这个XML文件如下形式。
CATALOG>
<GOOD>
<ID>1</ID>
<NAME>正山堂茶业 元正简雅正山小种红茶茶叶礼盒装礼品 武夷山茶叶送礼</NAME>
<PRICE>¥238.0</PRICE>
</GOOD>
<GOOD>
<ID>2</ID>
<NAME>红茶茶叶 正山小种武夷山红茶170g 春茶袋装170g散装新茶</NAME>
<PRICE>¥25.0</PRICE>
</GOOD>
<GOOD>
<ID>3</ID>
<NAME>晋袍 花蜜香正山小种红茶 300g牛皮纸袋装礼盒 武夷山桐木关包邮</NAME>
<PRICE>¥188.0 </PRICE>
<GOOD>
<GOOD>
<ID>4</ID>
<NAME>正山小种红茶特级 新茶 礼盒装 桂圆香 送礼红茶暖养胃茶叶250g</NAME>
<PRICE>¥238.12</PRICE>
</GOOD>
<GOOD>
<ID&>5</ID>
<NAME>2016春茶 武夷红茶 桐木关 野生红茶 正山小种 包邮 办公室用茶</NAME>
<PRICE>¥68.0</PRICE>
</GOOD>
</CATALOG>
我们把它存储在Tomcat中,请求地址为:http://127.0.0.1:8080/sec/48/goods.xml。 1)建立HTTP请求。如图19所示。
图19 新版本商品列表HTTP请求
自动重定向。 2)右击商品列表HTTP请求(new),选择“添加->断言->XML断言”。按照图20进行设置。
图20 XML断言
XML断言,仅仅确保XML格式是否正确。
3)右击商品列表HTTP请求(new),选择“添加->断言->XPath断言”。按照图21进行设置。
图21 商品列表(new)XPath断言
最后点击【验证】按键,确保XPath格式输入正确。我们在第5.8节中介绍XPath断言。 4)现在XPath出现了2.0版本。所以我们也可以使用XPath2 Assertion来进行断言。右击商品列表HTTP请求(new),选择“添加->断言->XPath2 Assertion”。按照图22进行设置。
图22 商品列表(new) XPath2 Assertion
最后点击【Validate xpath expression】按键,确保XPath格式输入正确。我们在第5.9节中介绍XPath2 Assertion。
《迎孟晚舟归》
孟女长我仅四月,在外孤辱千余日。
今夜加国归华来,举国沸腾迎木兰。
中华之国欲崛起,教育科学须更强。
纳入世界民林首,吾辈更须再努力。
九九六来诚可贵,头脑四肢肉身躯。
科学治企把脑动,事半功倍显神威。