﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-finer-随笔分类-2.软件测试 功能自动化</title><link>http://www.blogjava.net/zouhui/category/53905.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 16 Sep 2016 16:31:44 GMT</lastBuildDate><pubDate>Fri, 16 Sep 2016 16:31:44 GMT</pubDate><ttl>60</ttl><item><title>android自动化测试框架</title><link>http://www.blogjava.net/zouhui/archive/2015/04/01/424025.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Wed, 01 Apr 2015 05:13:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2015/04/01/424025.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/424025.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2015/04/01/424025.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/424025.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/424025.html</trackback:ping><description><![CDATA[@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&amp;file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); 1.安装jdk&nbsp; 配置jdk环境变量<br /><br />2.安装eclipes&nbsp; 火狐Selenium IDE<br /><br />3.加入jxl，log4j，selenium，gson，java-client包<br /><br />4.加入JUnit包，创建JUnit测试类 <br /><br />5.加入TestNG包，创建testng测试类 testng.xml<br /><br />6.安装ant，配置ant环境变量&nbsp; build.xml<br /><br />7.安装jenkins，tomcat 配置tomcat环境变量<br /><br />8.安装android-sdk-windows<br /><br />9.安装appium<br /><br />10.配置android环境变量<br /><br />
<p>&nbsp;</p>
<p>1</p>
<p>android-sdk-windows\tools&gt;uiautomatorviewer.bat&nbsp;<span style="font-family: 宋体">抓取页面控件元素</span></p>
<p>&nbsp;</p>
<p>2</p>
<p>android-sdk-windows\platform-tools&gt;adb install Aolaigo.apk <span style="font-family: 宋体">安装</span>app<span style="font-family: 宋体">软件</span></p>
<p>&nbsp;</p>
<p>3</p>
<p>android-sdk-windows\tools&nbsp;aapt dump badging E:\apk\es3.apk&nbsp;<span style="font-family: 宋体">获取</span>app<span style="font-family: 宋体">入口</span></p>
<p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">capabilities.setCapability(</span><span style="font-family: 'Courier New'; color: #2a00ff; font-size: 10pt">"appPackage"</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">, </span><span style="font-family: 'Courier New'; color: #2a00ff; font-size: 10pt">"com.csc.aolaigo"</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">);</span></p>
<p><span style="font-family: 'Courier New'; color: black; font-size: 10pt">capabilities.<u>setCapability</u>(</span><span style="font-family: 'Courier New'; color: #2a00ff; font-size: 10pt">"appActivity"</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">, </span><span style="font-family: 'Courier New'; color: #2a00ff; font-size: 10pt">".ui.StartActivity"</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">)</span></p>
<p>&nbsp;</p>
<p><span style="font-family: 'Courier New'; color: black; font-size: 10pt">4</span></p>
<p><span style="font-family: 'Courier New'; color: black; font-size: 10pt">eclipse Macketplace&nbsp;&nbsp; </span><span style="font-family: 宋体; font-size: 10pt; courier: ">安装</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">android</span></p>
<p>&nbsp;</p>
<p><span style="font-family: 'Courier New'; color: black; font-size: 10pt">5</span></p>
<p><span style="font-family: 'Courier New'; color: black; font-size: 10pt">appium</span></p>
<p><img alt="" src="data:image/png;base64,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" /></p>
<p>&nbsp;</p>
<p><span style="font-family: 'Courier New'; color: black; font-size: 10pt">6</span></p>
<p><span style="font-family: 宋体; font-size: 10pt; courier: ">真机上测试时，</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">android4.2</span><span style="font-family: 宋体; font-size: 10pt; courier: ">不支持</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">resources id</span><span style="font-family: 宋体; font-size: 10pt; courier: ">；需要</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">android4.4</span><span style="font-family: 宋体; font-size: 10pt; courier: ">等以上<br /><br />7<br />root安卓手机，adbWireless;adb connect 192.168.XX.XX;即可安装无线运行</span></p><img src ="http://www.blogjava.net/zouhui/aggbug/424025.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2015-04-01 13:13 <a href="http://www.blogjava.net/zouhui/archive/2015/04/01/424025.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>功能自动化文件清单</title><link>http://www.blogjava.net/zouhui/archive/2015/04/01/424024.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Wed, 01 Apr 2015 05:09:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2015/04/01/424024.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/424024.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2015/04/01/424024.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/424024.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/424024.html</trackback:ping><description><![CDATA[1.安装jdk&nbsp; 配置jdk环境变量<br /><br />2.安装eclipes&nbsp; 火狐Selenium IDE<br /><br />3.加入jxl，log4j，selenium包<br /><br />4.加入JUnit包，创建JUnit测试类 <br /><br />5.加入TestNG包，创建testng测试类 testng.xml<br /><br />6.安装ant，配置ant环境变量&nbsp; build.xml<br /><br />7.安装jenkins，tomcat 配置tomcat环境变量<br /><br />8.节点slave配置及连接<br /><br />9.启动节点自动化测试<br /><br /><div>shopping<br />&nbsp;&nbsp;&nbsp;&nbsp; ---src&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --java类<br />&nbsp;&nbsp;&nbsp;&nbsp; ------logo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --<br />&nbsp;&nbsp;&nbsp;&nbsp; ------logo.log&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --日志类<br />&nbsp;&nbsp;&nbsp;&nbsp; -------------- SelLogger<br />&nbsp;&nbsp;&nbsp;&nbsp; -------------- log4j.properties<br />&nbsp;&nbsp;&nbsp;&nbsp; ------logo.module&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --模块公共类<br />&nbsp;&nbsp;&nbsp;&nbsp; ---------------- BrowserDriver<br />&nbsp;&nbsp;&nbsp;&nbsp; ---------------- FileExcel<br />&nbsp;&nbsp;&nbsp;&nbsp; ---------------- Login<br />&nbsp;&nbsp;&nbsp;&nbsp; ---------------- PublicModule<br />&nbsp;&nbsp;&nbsp;&nbsp; ---------------- Search<br />&nbsp;&nbsp;&nbsp;&nbsp; ---------------- SiteUrl<br />&nbsp;&nbsp;&nbsp;&nbsp; ------logo.testsuite.cart&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --购物车测试类<br />&nbsp;&nbsp;&nbsp;&nbsp; ------------------------- CartTestSuiteJunit<br />&nbsp;&nbsp;&nbsp;&nbsp; ------------------------- CartTestSuiteTestng<br />&nbsp;&nbsp;&nbsp;&nbsp; ------logo.testsuite.login&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --登录测试类<br />&nbsp;&nbsp;&nbsp;&nbsp; ------------------------- LoginTestSuiteJunit<br />&nbsp;&nbsp;&nbsp;&nbsp; ------------------------- LoginTestSuiteTestng<br />&nbsp;&nbsp;&nbsp;&nbsp; ------logo.testsuite.order&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --订单测试类<br />&nbsp;&nbsp;&nbsp;&nbsp; ------------------------- OrderTestSuiteJunit<br />&nbsp;&nbsp;&nbsp;&nbsp; ------------------------- OrderTestSuiteTestng<br />&nbsp;&nbsp;&nbsp;&nbsp; ------logo.testsuite.payment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --支付测试类<br />&nbsp;&nbsp;&nbsp;&nbsp; ------------------------- PaymentTestSuiteJunit<br />&nbsp;&nbsp;&nbsp;&nbsp; ------------------------- PaymentTestSuiteTestng<br />&nbsp;&nbsp;&nbsp;&nbsp; ------logo.testsuite.product&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --商品测试类<br />&nbsp;&nbsp;&nbsp;&nbsp; ------------------------- ProductTestSuiteJunit<br />&nbsp;&nbsp;&nbsp;&nbsp; ------------------------- ProductTestSuiteTestng<br />&nbsp;&nbsp;&nbsp;&nbsp; ------logo.testsuite.search&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --搜索测试类<br />&nbsp;&nbsp;&nbsp;&nbsp; ------------------------- SearchTestSuiteJunit<br />&nbsp;&nbsp;&nbsp;&nbsp; ------------------------- SearchTestSuiteTestng<br />&nbsp;&nbsp;&nbsp;&nbsp; ------testng.xml&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --运行测试用例配置文件<br />&nbsp;&nbsp;&nbsp;&nbsp; JUnit4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --JUnit4组件包<br />&nbsp;&nbsp;&nbsp;&nbsp; TestNG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --TestNG组件包<br />&nbsp;&nbsp;&nbsp;&nbsp; ---ant&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --ant组件包<br />&nbsp;&nbsp;&nbsp;&nbsp; classes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --编译类<br />&nbsp;&nbsp;&nbsp;&nbsp; ---lib&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --环境依赖包<br />&nbsp;&nbsp;&nbsp;&nbsp; --logs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --日志生成文件<br />&nbsp;&nbsp;&nbsp;&nbsp; test-output&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --测试结果报告<br />&nbsp;&nbsp;&nbsp;&nbsp; tomcat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --jenkins运行环境<br />&nbsp;&nbsp;&nbsp;&nbsp; build.xml&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --ant构建运行配置文件<br />&nbsp;&nbsp;&nbsp;&nbsp; jxl.jar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --excel组件包<br />&nbsp;&nbsp;&nbsp;&nbsp; selenium-java-2.43.1-srcs.jar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --selenium组件包<br />&nbsp;&nbsp;&nbsp;&nbsp; selenium-java-2.43.1.jar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --selenium组件包<br />&nbsp;&nbsp;&nbsp;&nbsp; selenium-server-standalone-2.39.0.jar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --selenium组件包<br />&nbsp;&nbsp;&nbsp;&nbsp; test.xls&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --参数数据excel文件</div><img src ="http://www.blogjava.net/zouhui/aggbug/424024.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2015-04-01 13:09 <a href="http://www.blogjava.net/zouhui/archive/2015/04/01/424024.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>功能自动化框架概念</title><link>http://www.blogjava.net/zouhui/archive/2015/04/01/424017.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Wed, 01 Apr 2015 03:57:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2015/04/01/424017.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/424017.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2015/04/01/424017.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/424017.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/424017.html</trackback:ping><description><![CDATA[<p style="text-align:center" align="center"><strong><span style="font-size:22.0pt;font-family:宋体;">功能自动化</span></strong></p>  <p><strong><span style="font-size:14.0pt;font-family:宋体;">一</span></strong><strong><span style="font-size:14.0pt; font-family:宋体;">&#8226;</span></strong><strong><span style="font-size:14.0pt;font-family: 宋体;">介绍</span></strong></p>  <p style="margin-bottom:4.45pt"><span style="font-size:10.5pt;color:windowtext">自动化的本质----就是用程序来测试程序</span></p>  <p style="margin-bottom:4.45pt"><span style="font-size:10.5pt;color:windowtext">随着Web项目的日益庞大，自动化测试技术的重要性日益突出 </span></p>  <p style="margin-bottom:4.45pt">&nbsp;</p>  <p style="margin-bottom:4.45pt"><strong><span style="font-size:14.0pt;color:windowtext">二&#8226;手工 vs 自动化 </span></strong></p>  <p style="margin-bottom:4.45pt"><span style="font-size:10.5pt;color:windowtext">手工：不可替代、发现更多</span><span style="font-size:10.5pt;color:windowtext">bug</span><span style="font-size:10.5pt;color:windowtext">、人的想象力与理解力 </span></p>  <p><span style="font-size:10.5pt; color:windowtext">自动化：可重复、效率高，增加软件信任度 </span></p>  <p><strong>&nbsp;</strong></p>  <p><strong><span style="font-size: 14.0pt;color:windowtext">三&#8226;自动化测试<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></strong></p>  <p><strong>1</strong><strong><span style="font-family:宋体;">自动化测试分类</span></strong><span style="font-family:宋体;">：</span></p>  <p><span style="font-family:宋体;">对</span>web UI<span style="font-family:宋体;">的自动化测试程序</span></p>  <p><span style="font-family:宋体;">对</span>windows<span style="font-family:宋体;">窗体</span>c/s&nbsp;UI<span style="font-family:宋体;">的自动化测试程序</span></p>  <p>API<span style="font-family:宋体;">测试</span> <span style="font-family:宋体;">比如</span> <span style="font-family:宋体;">测试</span>WCF service<span style="font-family:宋体;">，</span>Web API<span style="font-family:宋体;">等</span></p>  <p><span style="font-family:宋体;">数据库测试，比如测试存储过程</span></p>  <p><span style="font-family:宋体;">接口测试，</span></p>  <p><span style="font-family:宋体;">单元测试</span></p>  <p><span style="font-family:宋体;">性能测试，性能测试都需要自动化</span></p>  <p>&nbsp;</p>  <p><strong>2</strong><strong><span style="font-family:宋体;">自动化测试驱动</span></strong></p>  <p><span style="font-family:宋体;">测试驱动是一个自动化测试框架的核心，其决定整个自动化脚本设计。当前比较流行的测试驱动有数据驱动和关键字驱动，使用不同的测试驱动，关系到脚本重用率，以及后期的可维护性。</span></p>  <p><span style="font-family:宋体;">（</span>1<span style="font-family:宋体;">）数据驱动</span></p>  <p><span style="font-family:宋体;">基于数据驱动的自动化测试框架是指测试驱动引擎从数据源获取测试数据，然后将将数据以参数的形式传递给测试脚本，最后通过执行测试脚本，验证测试结果，并将测试结果输出。</span></p>  <p><span style="font-family:宋体;">一般数据源与测试结果存储在数据库、</span>Excel<span style="font-family:宋体;">文件、</span>Csv<span style="font-family:宋体;">文件等。数据驱动主要优点是：</span></p>  <p><span style="font-family:宋体;">测试脚本与测试数据的分离，当应用功能变更时，只需要修改该功能部分的脚本；执行测试用例的人员不需要了解测试脚本的实现，只关注测试数据表与测试报告表。而且测试脚本的执行是离散的，即非线性的，测试人员可以有选择的执行测试用例。</span></p>  <p><span style="font-family:宋体;">（</span>2<span style="font-family:宋体;">）关键字驱动</span></p>  <p><span style="font-family:宋体;">关键字驱动的自动化测试框架是在数据驱动的基础上进行改进，数据源里包含的不只是数据，还有关键字，一个测试用例由一个或若干个关键字组成。每个关键字对应个不同的业务逻辑，例如，登录、注销等。数据表通过关键字，查找映射表，执行相关的脚本。</span></p>  <p><span style="font-family:宋体;">（</span>3<span style="font-family:宋体;">）驱动引擎</span></p>  <p><span style="font-family:宋体;">驱动引擎是对数据表的数据进行分析，根据不同的测试数据或关键字调用相应测试脚本。驱动引擎还需完成一些测试环境初始化、全局参数设置、测试用例是否执行的判断，以及测试报告的处理等。</span></p>  <p>&nbsp;</p>  <p><strong>3</strong><strong><span style="font-family:宋体;">自动化测试用例设计</span>&nbsp;</strong></p>  <p><span style="font-family:宋体;">分三步走：初始化，输入准备；</span></p>  <p><span style="font-family:宋体;">执行（方法调用），结果验证（断言）；</span></p>  <p><span style="font-family:宋体;">清理环境</span></p>  <p>&nbsp;</p>  <p><strong>4</strong><strong><span style="font-family:宋体;">自动化测试脚本开发</span></strong></p>  <p><span style="font-family:宋体;">测试脚本开发必须通过详细、合理的设计，要对脚本代码进行划分，脚本文件或数据文件分层管理。这样有利于自动化脚本的开发与维护，从而节省自动化测试的投入成本，也使得不同测试人员或开发人员可以协调开发脚本。</span></p>  <p><span style="font-family:宋体;">（</span>1<span style="font-family:宋体;">）脚本规范</span></p>  <p><span style="font-family:宋体;">测试脚本的开发也要遵循编程的规则与标准，应该统一规划，所有开发脚本的人员按照</span></p>  <p><span style="font-family:宋体;">统一的规定进行编码。除了编程本身规范，还考虑测试用例与库函数名的命名，测试用例需要加上项目名称，但公共的库函数却不需要，因为公共的库函数是独立于项目的。例如，项目</span>M4.1<span style="font-family:宋体;">客户端登录测试用例可命名为：</span>TC_M4.1_client_login<span style="font-family:宋体;">；读取</span>excel<span style="font-family:宋体;">表的函数可命名为：</span>read_excel<span style="font-family:宋体;">。</span></p>  <p><span style="font-family:宋体;">（</span>2<span style="font-family:宋体;">）脚本划分</span></p>  <p><span style="font-family:宋体;">测试脚本的划分，如何定义公共的脚本库，不同模块特有的脚本库，以及直接构建测试用例的脚本。为了方便以后脚本的维护问题，必须对脚本进行有效的分层，同时，提高了脚本的复用率。</span></p>  <p><span style="font-family:宋体;">&#9312;公共类库</span></p>  <p><span style="font-family:宋体;">公共类库包括所有模块都可能用户的操作方法，其抽象了不同模块同性，比如操作</span>excel<span style="font-family:宋体;">表的方法、读写测试报告、驱动引擎等。</span></p>  <p><span style="font-family:宋体;">&#9313;模块特定类库</span></p>  <p><span style="font-family:宋体;">在模块内部将可以为该模块共享使用的方法抽象出来，作为一个公共类。它可以是一个单的逻辑操作，也比较独立。比如客户端登录操作、控制台登录操作、控制台更新操作等。</span></p>  <p><span style="font-family:宋体;">&#9314;测试用例脚本</span></p>  <p><span style="font-family:宋体;">测试用例脚在最上层，它根据测试点进行设计，面向具体的应用。它可直接调用公共类库或模块特定类库的方法，即调单个逻辑操作。它是单个或多个逻辑操作的集合，即一个测试用户脚本。比如，在客户端访问资源的测试用例，它调用了客户端登录方法和访问资源方法。</span></p>  <p><span style="font-family:宋体;">（</span>3<span style="font-family:宋体;">）测试用例</span></p>  <p><span style="font-family:宋体;">&#9312;测试用例粒度</span></p>  <p><span style="font-family:宋体;">测试用例的粒度决定了用例模型级的复杂度，也决定了每一个用例内部的复杂度。</span></p>  <p><span style="font-family:宋体;">应该根据每个系统的具体情况来把握各个层次的复杂度，在尽可能保证整个用例模型的易理解性前提下决定用例的大小和数目。用例不能太大，这样一旦出执行测试用例出错，不利于定位问题；但也不能太细化，太小则不方便执行。</span></p>  <p><span style="font-family:宋体;">&#9313;测试用例与测试套件</span></p>  <p><span style="font-family:宋体;">一个大型的项目有许功能模块，必然会产生大量的测试用例，怎样才能有效的管理这些测试用例呢？这就需要创建测试套件，通过测试套件将测试某一个模块或功能点的测试用例集合起来，方便运行与管理。例如，只验证&#8220;用户管理&#8221;模块功能，则只需要执行&#8220;用户管理&#8221;模块套件即可。</span></p>  <p><span style="font-family:宋体;">（</span>4<span style="font-family:宋体;">）脚本与</span>html<span style="font-family:宋体;">标记分离脚本与</span>html<span style="font-family:宋体;">标记分离使得在一定程度上脚本独立于</span>WEB<span style="font-family:宋体;">页面，脚本没有直接的处理</span>html<span style="font-family:宋体;">标记，脚本代码通过</span>html<span style="font-family:宋体;">映射表获取赋有</span>WEB<span style="font-family:宋体;">页面标记值的变量。</span>WEB<span style="font-family:宋体;">页面标记包括</span>html<span style="font-family:宋体;">标记和页面内容（文本或图片等，这些都可能是判断用例是否成功能的检查点），当</span>WEB<span style="font-family:宋体;">页面标记变更后，不需要在范围的修改脚本。</span></p>  <p><span style="font-family:宋体;">（</span>5<span style="font-family:宋体;">）选择适合自动化测试的用例</span></p>  <p><span style="font-family:宋体;">在编写自动化测试脚本前，首先要确定哪些用例适合做自动化测试，因为自化测试不像手工测试，它不能那么智能，也没有发发散思维。通常适合自动化测试的用例有：</span></p>  <p><span style="font-family:宋体;">产品型项目。产品型的项目，新版本是在旧版本的基础上进行改进，功能变不大的项目，但项目的新老功能都必须重复的测试。</span></p>  <p><span style="font-family:宋体;">回归测试。回归测试是自动化测试的强项，它能够很好的验证你是否引入了新的缺陷，老的缺陷是否修改过来了。在某种程度上可以把自动化测试工具叫做回归测试工具。</span></p>  <p><span style="font-family:宋体;">机械并频繁的测试。每次需要输入相同、大量的一些数据，并且在一个项目中运行的周期比较长。</span></p>  <p><span style="font-family:宋体;">有一些交互性比较强，需要人工干预的操作，就不要指望通过自动化测试来完成了。</span></p>  <p><span style="font-family:宋体;">例如，用户使用</span>DKEY<span style="font-family:宋体;">登录。</span></p>  <p>&nbsp;</p>  <p><strong><span style="font-size: 14.0pt;color:windowtext">四&#8226;测试自动化</span></strong><span style="font-size:10.5pt;color:windowtext">&nbsp;&nbsp; </span><span style="font-size:10.5pt;color:windowtext">偏向于开发岗位 </span></p>  <p><span style="font-size:10.5pt; color:windowtext">自动化系统平台开发，自动化框架工具开发；提供给自动化测试或业务人员等执行自动化测试，结果收集，结果判断，结果通告</span></p>  <p>&nbsp;</p>  <p><span style="font-size:10.5pt; color:windowtext">自动化框架<span><span>&nbsp;&nbsp;&nbsp; </span></span>分上下两个层次</span></p>  <p>&nbsp;</p>  <p><span style="font-size:10.5pt; color:windowtext">上层是管理整个自动化测试的开发，执行以及维护，在比较庞大的项目中，它体现重要的作用，它可以管理整个自动测试，包括自动化测试用例执行的次序、测试脚本的维护、以及集中管理测试用例、测试报告和测试任务等。</span></p>  <p>&nbsp;</p>  <p><span style="font-size:10.5pt; color:windowtext">下层主要是测试脚本的开发，充分的使用相关的测试工具，构建测试驱动，并完成测试业务逻辑</span></p>  <p>&nbsp;</p>  <p><strong><span style="font-size:14.0pt;font-family:宋体;">五</span></strong><strong><span style="font-size:14.0pt; font-family:宋体;">&#8226;</span></strong><strong><span style="font-size:14.0pt;font-family: 宋体;">开源自动化框架</span></strong></p>  <p><strong><span style="font-size:14.0pt;font-family:宋体;">PC</span></strong><strong><span style="font-size:14.0pt;font-family: 宋体;">端Web：Jenkins+ant+selenium+testing+tomcat</span></strong></p>  <p><span style="font-family:宋体;">自动构建</span>+<span style="font-family:宋体;">脚本开发</span>+<span style="font-family:宋体;">测试结果</span></p>  <p>&nbsp;</p>  <p>&nbsp;</p>  <p><strong><span style="font-size:14.0pt;font-family:宋体;">移动app：Jenkins+Appium+ant+selenium+testng+tomcat</span></strong></p>  <p><span style="font-family:宋体;">自动构建</span>+<span style="font-family:宋体;">脚本开发</span>+<span style="font-family:宋体;">测试结果</span></p>  <p>&nbsp;</p>  <p>&nbsp;</p>  <p>&nbsp;</p>  <p>&nbsp;</p>  <p>&nbsp;</p>  <p><span style="font-size:12.0pt;font-family:宋体;">做什么不深入，就看表面，浅尝辄止</span></p>  <p>&nbsp;</p><img src ="http://www.blogjava.net/zouhui/aggbug/424017.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2015-04-01 11:57 <a href="http://www.blogjava.net/zouhui/archive/2015/04/01/424017.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>