`

使用Builder模式创建多值组合搜索测试用例实践

Web 
阅读更多
一、需求
有如下的基于web的组合搜索功能,需要创建自动化测试用例:

我们需要在所有的输入框输入不同的值,进行非常多次的搜索,然后验证

二、实现
创建一个类 ClientBasicSearchFields 去代表所有的输入框,创建一个方法 doClientBasicSearch(ClientBasicSearchFields csf)去执行搜索的操作,通过ClientBasicSearchFields将参数传入
    public void doClientBasicSearch(ClientBasicSearchFields csf){
    	type("element identifier1", csf.getClientName());
    	type("element identifier2", csf.getClientShortName());
    	type("element identifier3", csf.getAddress());
    	type("element identifier4", csf.getCity());
    	select("element identifier5", csf.getState());
    	type("element identifier6", csf.getZip());
    	type("element identifier7", csf.getFirstClientSerRep());
    	type("element identifier8", csf.getSedClientSerRep());
    	select("element identifier9", csf.getBillingFre());
    	select("element identifier10", csf.getClinicalFre());
    	
    	clickAndPause("submit");   	
    }


接下去是重点,使用Builder模式的java类ClientBasicSearchFields
public class ClientBasicSearchFields {
	private final String clientName;
	private final String clientShortName;
	private final String address;
	private final String city;
	private final String state;
	private final String zip;
	private final String firstClientSerRep;
	private final String sedClientSerRep;
	private final String billingFre;
	private final String clinicalFre;
	
	private ClientBasicSearchFields(Builder builder){
		clientName = builder.clientName;
		clientShortName = builder.clientShortName;
		address = builder.address;
		city = builder.city;
		state = builder.state;
		zip = builder.zip;
		firstClientSerRep = builder.firstClientSerRep;
		sedClientSerRep = builder.sedClientSerRep;
		billingFre = builder.billingFre;
		clinicalFre = builder.clinicalFre;		
	} 
	
	public String getClientName() {
		return this.clientName;
	}
	
	public String getClientShortName(){
		return this.clientShortName;
	}
	
	public String getAddress(){
		return this.address;
	}
	
	public String getState(){
		return this.state;		
	}
	
	public String getCity(){
		return this.city;
	}
	
	public String getZip(){
		return this.zip;
	}
	
	public String getFirstClientSerRep(){
		return this.firstClientSerRep;
	}
	
	public String getSedClientSerRep(){
		return this.sedClientSerRep;
	}
	
	public String getBillingFre(){
		return this.billingFre;
	}
	
	public String getClinicalFre() {
		return this.clinicalFre;
	}


	public static class Builder {
		private String clientName = "";
		private String clientShortName = "";
		private String address = "";
		private String city = "";
		private String state = "";
		private String zip = "";
		private String firstClientSerRep = "";
		private String sedClientSerRep = "";
		private String billingFre = "";
		private String clinicalFre = "";
		
		public Builder(){
			
		}
		
		public Builder clientName(String value){
			clientName = value;
			return this;
		}
		public Builder clientShortName(String value){
			clientShortName = value;
			return this;
		}
		
		public Builder address(String value){
			address = value;
			return this;
		}
		
		public Builder city(String value){
			city = value;
			return this;
		}
		
		public Builder state(String value){
			state = value;
			return this;
		}
		
		public Builder zip(String value){
			zip = value;
			return this;
		}
		
		public Builder firstClientSerRep(String value){
			firstClientSerRep = value;
			return this;
		}
		
		public Builder sedClientSerRep(String value){
			sedClientSerRep = value;
			return this;
		}
		
		public Builder billingFre(String value){
			billingFre = value;
			return this;
		}
		
		public Builder clinicalFre(String value){
			clinicalFre = value;
			return this;
		}
		
		public ClientBasicSearchFields build(){
			return new ClientBasicSearchFields(this);
		}
				
	}
	

}


最后,在测试方法中这样使用
public void testSearchByClientName() {
// 进入我们需要测试的页面
		logInToTheSystem();
		navigateToSearchClientPage();
// 根据设置的参数进行搜索
		ClientBasicSearchFields csf = new ClientBasicSearchFields.Builder().clientName(
				“testName”).build();
		doClientBasicSearch(csf);
// 验证结果
		verifySearchResultsPage();
	}

如果需要同时输入多个值进行搜索,可以采用如下方式:
ClientBasicSearchFields csf = new ClientBasicSearchFields.Builder().clientName(
				"某某某").city("杭州").zip("310000")
				.build();

在每一个测试方法中,我们可以创建一个csf,然后通过这种方法初始化测试数据,我们每次可以设置的参数个数都是可以选的,可以很简单得去创建更多我们需要的测试用例。

三、总结
如果用普通的javabean, 也可以实现同样的功能。用builder模式,看上去更加阅读,而且比JavaBean更加安全(Effective Java第二版)
  • 大小: 37.7 KB
分享到:
评论

相关推荐

    找零钱最佳组合的测试用例

    找零钱最佳组合的测试用例

    测试用例最佳实践分析

    测试用例实践回顾和简析 研究测试用例的重要意义 软件领域发展对测试用例技术实践的挑战 测试用例制约因素 微软测试用例实践研究 测试用例最佳实践 问题解答

    软件测试用例模版.xls

    软件测试用例模版【仅供参考】软件测试用例模版【仅供参考】软件测试用例模版【仅供参考】软件测试用例模版【仅供参考】软件测试用例模版【仅供参考】软件测试用例模版【仅供参考】软件测试用例模版【仅供参考】软件...

    测试用例的设计方法

    1)在任何情况下都必须使用边界值分析方法,经验表明用这种方法设计出测试用例发现程序错误的能力最强。 【文章来源:文斯测试技术研究中心 http://blog.csdn.net/vincetest】 2)必要时用等价类划分方法补充一些测试...

    测试用例实例++非常详细

    测试用例示例测试用例示例测试用例示例测试用例示例测试用例示例测试用例示例测试用例示例测试用例示例测试用例示例测试用例示例测试用例示例

    测试用例编写资料汇总

    使用因果图设计测试用例.doc 写测试用例不可不看的好东东!!!.pdf 史上最全的测试用例设计方法总结.doc 如何设计编制软件测试用例.doc 测试用例.doc 测试用例的设计-边界值法例子.doc 测试用例的设计等价划分法.ppt ...

    性能测试用例,测试用例

    性能测试用例性能测试用例性能测试用例性能测试用例

    测试用例方法及实践用例

    测试用例方法及实践用例,包含[优]测试用例设计之判定表驱动分析方法.pdf [优]测试用例设计之因果图方法 [优]测试用例设计之正交法 [优]公共用例设计实践 [优]精简测试用例编写 [优]授客细说场景测试用例设计与实践

    关于搜索功能的测试用例

    关于搜索功能的测试用例,搜索输入框,高级搜索

    测试用例模板测试用例模板

    测试用例模板测试用例模板测试用例模板测试用例模板

    测试用例模板 测试用例 模板

    测试用例模板 测试用例 模板测试用例模板 测试用例 模板

    测试用例设计:测试用例的基本概念 测试用例的设计和编写 测试用例评估 测试用例的管理

    测试用例的基本概念 测试用例的设计和编写 测试用例评估 测试用例的管理

    测试用例模板-word文件模式

    自己参考使用的模板,51测试用例模板,word模式 可以作为参考使用,需求分析师,测试工程师写需求,写用例参考模板!

    软件测试用例实例 软件测试用例实例 软件测试用例实例 软件测试用例实例

    软件测试用例实例 功能描述:用户通过用户界面输入信息,然后提交,信息保存至数据库,客户端提示提交成功。测试需求分析:UI、用户的输入校验、数据库表更新、系统提示信息 软件测试用例实例 功能描述:用户通过...

    软件测试用例范文

    软件测试用例范文

    功能测试用例大全1500条

    测试用例的分类 3 文本框需求 4 字段为特殊代码校验: 4 文本框为数值型 4 文本框为日期型 5 文本框为时间型 6 密码框 返回目录 6 单选按钮 7 组合列表框/下拉列表 7 数码框(up-down)控件 8 搜索框填充域测试 8 复...

    软件测试用例英文版

    适合外企工作的朋友哦,英文版测试用例模板。 模板内容丰富,包含软件测试用例的常用选项。也是平时自己工作中积累的。含2个tab,第一个tab是更新记录表格,第二个tab是测试用例模板。 模板中含各种case通过率的统计...

    软件测试用例模板 测试要求

    软件测试用例模板 测试要求软件测试用例模板 测试要求软件测试用例模板 测试要求软件测试用例模板 测试要求软件测试用例模板 测试要求

    测试用例内有三个测试用例相关文件

    测试用例三个文件 一个Word写的测试用例模板 一个Word写的详细的测试用例 一个Excel写的测试用例模板 希望能对大家有帮助

Global site tag (gtag.js) - Google Analytics