1、哪些能自动化?哪些能自动化?n 软件需求变动不频繁软件需求变动不频繁 测试脚本的稳定性决定了自动化测试的维测试脚本的稳定性决定了自动化测试的维护成本,如果变动过于频繁,维护成本太高。护成本,如果变动过于频繁,维护成本太高。n 项目周期足够长项目周期足够长 若项目周期太短,或是紧急上线的新功能,若项目周期太短,或是紧急上线的新功能,新产品是不适合去用自动化测试的。新产品是不适合去用自动化测试的。n 自动化测试脚本可重复使用自动化测试脚本可重复使用 若自动化脚本利用率不高,测会造成人力的若自动化脚本利用率不高,测会造成人力的浪费。浪费。自动化工具介绍自动化工具介绍n PHPUnit 简介简介 PH
2、PUnit是一个轻量级的是一个轻量级的PHP测试框架。它测试框架。它是在是在PHP5下面对下面对JUnit3系列版本的完整移植,系列版本的完整移植,是是xUnit测试框架家族的一员测试框架家族的一员(它们都基于模式先它们都基于模式先锋锋Kent Beck的设计的设计)。类似的其他语言的还有类似的其他语言的还有JUNIT(java),),NUNIT(c#),UNITTEST(python)以及以及Rspec(Ruby).n PHPUNIT的安装的安装方法一:方法一:使用使用Pear 运行运行 pear channel-discover pear.phpunit.de;pear install p
3、hpunit/PHPUnit 方法二方法二:手动安装:手动安装 1 从从pear.phpunit.de/get/下载软件包并解压下载软件包并解压 2 把解压后的目录加入把解压后的目录加入php.ini中的中的include_path 3 将脚本将脚本pear-phpunit改名为改名为phpunit 4 将将phpunit脚本中的脚本中的php_bin替换成替换成php可执行脚本的路可执行脚本的路径径 5 为为phpunit脚本增加可执行权限并加入脚本增加可执行权限并加入$PATH 6 将将PHPUnit/Runner/Version.php中的中的package_version替换成替换成3
4、位位 版本号。版本号。n 测试用例的结构测试用例的结构setBrowser(*chrome);$this-setBrowserUrl(weibo/);public function testMyTestCase()/具体测试工作具体测试工作$this-open(/);$this-click(css=body);public function tearDown()/清除工作清除工作$this-selenium-stop();?n 断言常用的有:断言常用的有:n assertLocationassertLocation(判断当前是在正确的页面)、(判断当前是在正确的页面)、n assertTitl
5、eassertTitle(检查当前页面的(检查当前页面的titletitle是否正确)是否正确)n assertValueassertValue(检查(检查inputinput的值,的值,checkbox checkbox或或radioradio,有值为,有值为”on”on”无为无为”off”off)n assertSelectedassertSelected(检查(检查selectselect的下拉菜单中选中的下拉菜单中选中是否正确)是否正确)n assertSelectedOptionsassertSelectedOptions(检查下拉菜单中的选(检查下拉菜单中的选项的是否正确)项的是否
6、正确)n assertTextassertText(检查指定元素的文本)(检查指定元素的文本)n assertTextPresentassertTextPresent(检查在当前给用户显示的(检查在当前给用户显示的页面上是否有出现指定的文本)页面上是否有出现指定的文本)n assertTextNotPresentassertTextNotPresent(检查在当前给用户显示(检查在当前给用户显示的页面上是否没有出现指定的文本)的页面上是否没有出现指定的文本)n assertAttributeassertAttribute(检查当前指定元素的属性的值(检查当前指定元素的属性的值)n assert
7、TableassertTable(检查(检查tabletable里的某个里的某个cellcell中的值)中的值)n assertEditableassertEditable(检查指定的(检查指定的inputinput是否可以编辑是否可以编辑)n assertNotEditableassertNotEditable(检查指定的(检查指定的inputinput是否不可是否不可以编辑)以编辑)n assertAlertassertAlert(检查是否有产生带指定(检查是否有产生带指定messagemessage的的alertalert对话框)对话框)n waitForElementPresent w
8、aitForElementPresent(等待检验某元素的存(等待检验某元素的存在。为真时,则执行。在。为真时,则执行。)Selenium介绍介绍n Selenium 是是ThroughtWorks 公司一个强大的开公司一个强大的开源源Web 功能测试工具系列,功能测试工具系列,1.Selenium 可以使用录制工具录制脚本,测试页可以使用录制工具录制脚本,测试页面。面。2.Selenium 可以生成类可以生成类PHP代码,代码,html 代码,代码,java 代码,代码,ruby 代码等。代码等。3.Selenium 录制工具根据录制工具根据id 属性定位属性定位html 元素。元素。4.S
9、elenium IDE 仅支持仅支持Selenium 语言。语言。5.Selenium RC 支持很多语言,如:支持很多语言,如:PHP,C#,Java,Python,Ruby 等。等。Selenium+PHPUNIT环境的结合环境的结合1,安装,安装Firefox,Selenium IDE 插件,插件,Firebug 插件插件2,解压解压Selenium 的的selenium-remote-control 包,包,得到一个服务器,或者在线安装:得到一个服务器,或者在线安装:pear install phpunit/PHPUnit_Selenium3,下载,下载Selenium-RCselen
10、ium.googlecode/files/selenium-server-standalone-2.22.0.jar 安装安装selenium server:只要安装了只要安装了jdk1.6 或或1.7 都都可以运行可以运行selenium-server,在命令行输入,在命令行输入:java-jar selenium-server-standalone-2.22.0.jar测试用例编写及测试过程测试用例编写及测试过程n 测试脚本的录制测试脚本的录制 用用Selenium录制测试操作,并转化成录制测试操作,并转化成PHPUNIT脚脚本,保存成对应该的文件。在要检测的地方,加上适本,保存成对应该的
11、文件。在要检测的地方,加上适当的当的Assert语句。语句。n 运行运行Selenium Server 服务器服务器 在在CMD窗口是运行命令:窗口是运行命令:java-jar selenium-server-standalone-2.22.0.jarn 调试测试脚本调试测试脚本 另外开一个另外开一个CMD窗口,进入测试脚本所在目录,窗口,进入测试脚本所在目录,运行:运行:phpunit 测试文件名测试文件名.phpn 根据运行结果,查找原因。分析一下是测试脚本根据运行结果,查找原因。分析一下是测试脚本的原因,或是被测试对象的原因。如果是脚本的的原因,或是被测试对象的原因。如果是脚本的原因,修
12、改测试脚本,如果是被测试对象的问题原因,修改测试脚本,如果是被测试对象的问题,就查找程序的原因。,就查找程序的原因。编写自动化用例中应注意的问题编写自动化用例中应注意的问题n 测试对象的定位测试对象的定位 在在WEB级测试的过程中,最麻烦的是测试对象的定级测试的过程中,最麻烦的是测试对象的定位。位。Selenium有很多定位的方法,请自行学习。有有很多定位的方法,请自行学习。有个注意事项:如果要定位新打开窗口中的元素,必个注意事项:如果要定位新打开窗口中的元素,必须先选定新窗口:须先选定新窗口:selectWindow()。()。n 测试对象的扫描测试对象的扫描 在测试用例执行的过程中,有的时
13、候由于页面刷新在测试用例执行的过程中,有的时候由于页面刷新的原因,可能出现找不到的情况,这个时候加些儿的原因,可能出现找不到的情况,这个时候加些儿必要的必要的Sleep()语句。语句。n Selenium 函数和函数和Assert语句的选择语句的选择 (1)Selenium API函数参考手册函数参考手册 (2)Selenium入门:入门:.csdn/chinabluexfw/article/details/7331359 (3)Assert语句介绍语句介绍 思想之地:思想之地:be-evil.org/tag/phpunit phpunit-assert系列函数:系列函数:.sina/s/_5
14、d2184eb0100n9z1.htmln 测试用例编写规范测试用例编写规范 在测试用例编写的过程中,一定要加上注释。在测试用例编写的过程中,一定要加上注释。最少要定位到函数级,在关键的语句前一定要加上最少要定位到函数级,在关键的语句前一定要加上注释。注释。n 扩展资料:扩展资料:软件测试网:软件测试网:51testing/html/index.html 开源中国社区:开源中国社区:oschina/projectn 未来发展未来发展 在测试用例编写完成后,要接入公司现有的测试用在测试用例编写完成后,要接入公司现有的测试用例管理框架例管理框架weilink,汇总运行结果,还可以发给相汇总运行结果,还可以发给相关人员!关人员!目前编写的自动化用例介绍目前编写的自动化用例介绍n 关系冒烟测试的自动化关系冒烟测试的自动化 下面请杜杰同学先来介绍自动化测试用例。下面请杜杰同学先来介绍自动化测试用例。谢谢 谢谢 大大 家!家!谢谢