北京网站开发公司排名,个人官网网站源码,网站首页index.html,精准客户电话号码资源一、原理及特点参数放在XML文件中进行管理用httpClient简单封装一个httpUtils工具类测试用例管理使用了testNg管理#xff0c;使用了TestNG参数化测试#xff0c;通过xml文件来执行case。测试报告这里用到第三方的包ReportNG 项目组织用Maven二、准备使用工具#xff1a;ecl…一、原理及特点参数放在XML文件中进行管理用httpClient简单封装一个httpUtils工具类测试用例管理使用了testNg管理使用了TestNG参数化测试通过xml文件来执行case。测试报告这里用到第三方的包ReportNG 项目组织用Maven二、准备使用工具eclipse,maven用到的第三方jar包dom4j、reportng、testng理解难点httpUtils和xmlUtil工具类的封装dom4j使用CookieStore的应用三、框架构思1、项目结构2、用例执行流程3、接口调用流程4、调度脚本流程四、框架实现1、输入参数1.1 参数放在XML文件中进行管理例这里测试获取角色的接口输入参数为page和rowsmapRole.xml内容如下1.2 封装一个xmlUtil工具类负责读取XML,使用第三方的jar包dom4j1.2.1 xmlUtil中readXMLDocument方法返回值为HashMappublic static HashMap readXMLDocument(String beanName,String xmlName){}参数xmlName(xml文件的名字) 参数beanName(xml文件中节点的名称)1.3 封装一个CookieUtil工具类通过CookieStore储存cookie1.3.1 CookieUtil类中setCookieStore方法返回值为CookieStorepublic CookieStore setCookieStore(HttpResponse httpResponse) {}1.4 用httpClient简单封装一个httpUtils工具类有get.post,put,delete方法1.4.1 httpUtils中post封装方法如下public CloseableHttpResponse post(String url, Map params,CloseableHttpClient httpclient,CookieStore cookieStore){}2、返回参数2.1 创建一个接口返回对象ResponseBean对象ResponseBean包括status、statusCode、contentType、body、url、method、cookies2.2 在工具类中在创建一个ReponseUtil工具类ReponseUtil工具类负责将请求的返回数据CloseableHttpResponse 转换成ResponseBeanpublic ResponseBean setResponseBean(CloseableHttpResponse httpResponse) {}3、测试用例测试用例管理使用了testNg管理 使用了TestNG参数化测试通过xml文件来执行case3.1 测试case脚本public class GetRoleTest {static CookieStore cookieStore ;static CookieUtil cookieUtilnew CookieUtil() ;CloseableHttpClient client;HttpUtils httpUtilsHttpUtils.getInstance();Parameters({ url, objBean ,statusCode,xmlName})BeforeSuite/** 登录进入系统获取JSESSIONID放入到CookieStore中* */public void TestLoginIn(String url ,String objBean, String statusCode,String xmlName) {Map paramsxmlUtil.readXMLDocument(objBean,xmlName);client HttpClients.createDefault();CloseableHttpResponse httpResponse httpUtils.post(url, params, client, cookieStore);//cookieUtil.printResponse(httpResponse);cookieStorecookieUtil.setCookieStore(httpResponse);}Parameters({ url, objBean ,statusCode,body,xmlName})Test(priority 2)public void TestGetRole(String url ,String objBean, String statusCode,String body,String xmlName) {Map paramsxmlUtil.readXMLDocument(objBean,xmlName);client HttpClients.custom().setDefaultCookieStore(cookieStore).build();CloseableHttpResponse httpResponse httpUtils.post(url, params, client, cookieStore);ResponseBean rbnew ReponseUtil().setResponseBean(httpResponse);// add AssertAssert.assertEquals(OK, rb.getStatus());Assert.assertEquals(statusCode, rb.getStatusCode());Assert.assertEquals(true, rb.getBody().contains(body));}AfterSuitepublic void closeClient(){try {// 关闭流并释放资源client.close();} catch (IOException e) {e.printStackTrace();}}}[注] 因为API接口测试时每次都要校验Cookie所有我们每次都先执行登录操作去获取Cookie3.2 xml文件的编写右键-run as -TestNG Suite,这个场景的的测试用例就可以运行了4、测试报告和项目组织测试报告这里用到第三方的包ReportNG 项目组织用Mavenxsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd4.0.0..............................................................................................................................UTF-8TestGetRole.xml.................这里写testNG对应的XML名称----------------------TestGetUser.xml..........................org.apache.maven.pluginsmaven-surefire-plugin2.19src/test/java/testSuites/${xmlFileName}.................略..........................这里的和properties中的xmlFileName想对应............src/test/java/testSuites/${xmlFileName10}org.apache.maven.pluginsmaven-surefire-plugin2.5usedefaultlistenersfalselistenerorg.uncommons.reportng.HTMLReportertarget/maven-compiler-plugin3.5.11.81.8[注] 因为是maven的项目所以要将testSuite的xml文件放在maven的test目录下这样右键pom.xml文件maven test,所有的测试用例就开始执行了测试报告框架目前存在的不足1、数据库数据校验这一块的功能还没有完善计划用MyBatis2、参数使用了xml文件配置虽然灵活但有些繁琐目前还没想到好的解决方案testlink是否可以尝试一下呢