蚌埠集团网站建设,wordpress中文模版,新浪网网站的建设费用预算,网站后台权限设计一、自动化测试基本介绍 1 自动化测试概述#xff1a;
什么是自动化测试#xff1f;一般说来所有能替代人工测试的方式都属于自动化测试#xff0c;即通过工具和脚本来模拟人执行用例的过程。
2 自动化测试的作用
减少软件测试时间与成本改进软件质量 通过扩大测试覆盖率…一、自动化测试基本介绍 1 自动化测试概述
什么是自动化测试一般说来所有能替代人工测试的方式都属于自动化测试即通过工具和脚本来模拟人执行用例的过程。
2 自动化测试的作用
减少软件测试时间与成本改进软件质量 通过扩大测试覆盖率加强测试工作 进行手动测试难以完成的、需要更高的成本、更长的计划、更高的质量的任务 迭代更新较少但仍需测试人员维护的通过自动化解放人力 3 自动化测试的主要应用
冒烟测试主业务流程 回归测试 性能测试 兼容性测试 一套测试脚本多个平台执行 完成手动测试无法完成的工作下班后无人值守测试 4 web自动化实现的目标
一原则
编写自动化测试用例库根据用例库里面的用例编写测试用例。 提高测试效率降低测试成本 重复性较强的用例用自动化实现 快速的回归测试提高版本发布的速度和质量 功能覆盖率达到要求 测试具有移植性和可重复性 二实施策略持续集成
框架的选择 环境搭建 case编写提取公共模块、提取公共参数、功能逻辑熟悉 log输出 报告输出 Jenkins持续集成定时集成、发送邮件 二、Web自动化工具 1 web自动化工具的选择
市场上自动化工具分为开源和和商用付费两种下面提供两种类型主流的selenium和QTP对比
最终选择seleniumIDEAjavamaventestngjenkins
三、Selenium介绍 一selenium 测试原理
在自动化测试过程中存在三部分组件客户端脚本浏览器驱动浏览器终端。 驱动文件以geckodriver.exe为例这个可执行的驱动文件启动后相当于一个暴露了一系列接口的服务器监听某一端口。 客户端的操作访问页面定位元素输入数据点击按钮等都是封装成了接口请求eg/session/xx/yy然后提交到驱动服务器。 驱动服务器接收到客户端的请求后再跟终端浏览器交互。 终端浏览器做出相应操作操作元素、甚至浏览器本身截屏、窗口、安装插件证书。
二selenium 工具套件简单介绍
Selenium WebDriver面向对象API。 Selenium IDE集成开发环境FireFox插件用于提供图形化界面来录制和回放脚本插件只是用来模拟原型的工具并不希望测试工程师使用此工具用来运行大批量的测试脚本。此插件需要使用第三方的javaScript代码库才能支持循坏和条件判断 Selenium-Grid可以在多个测试环境以并发的方式执行测试脚本实现脚本的并发执行缩短大量测试脚本的执行时间。 四、Selenium WebDriver常用API 一selenium WebDriver常用基础API
一 浏览器操作
加载浏览器驱动打开页面 driver new FirefoxDriver(); String baseUrl http://oa2.midairen.com/index.html; driver.get(baseUrl);
关闭浏览器 driver.close();//关闭浏览器
最大化窗口 driver.manage().window().maximize();
后退到前一页 driver.navigate().back();
前进到后一页 driver.navigate().forward();
刷新页面 driver.navigate().refresh();
获得title并打印 String title driver.getTitle();
杀掉Windows的浏览器进程 当前浏览器窗口截屏比较截屏 操作浏览器的cookie (二) 页面操作
获取页面的源代码 获取页面的URL地址 在输入框中清除原有的文字 在输入框中输入指定内容 单击按钮 双击某个元素 操作单选下拉列表 操作单选框 操作复选框 检查元素文本内容是否出现 执行JS脚本 操作iframe中的页面元素 操作富文本 (三) 元素定位的方法
五、TestNG 一TestNG基本介绍
TestNG是Java中的一个测试框架是一个目前很流行实用的单元测试框架有完善的用例管理模块配合Maven能够很方便管理依赖第三方插件。使用TestNG可以做功能、接口、单元、集成的自动化测试最常见的是结合selenium做功能自动化测试它使用Java注释去写测试方法。
测试人员一般用TestNG来写自动化测试开发人员一般用Junit写单元测试TestNG适合测试人员使用的主要原因TestNG更适合复杂的集成测试。
(二) testNG的特点
注解 TestNG使用Java和面向对象的功能 支持综合类测试例如默认情况下没有必要创建一个新的测试来作为每个测试方法的类的实例 独立的编译时间测试代码运行时配置/数据信息 灵活的运行时配置 支持依赖测试方法并行测试负载测试局部故障 灵活的插件API 支持多线程测试 (三) 注解
TestNG常用的测试用例组织结构由test Suite-test-测试class-测试方法。Test suite有一个或者多个test组成test由一个或者多个测试class组成一个测试class有一个或者多个测试方法组成。运用不同层级的测试用例时课通过不同注解实现测试前的初始化工作测试用例执行工作和测试后的清理工作。
常用注解如下 (四) 依赖测试 某些复杂的测试场景需要按照某个特定的顺序执行测试用例一以此保证某个特定顺序执行测试用例此测试场景运行需求称为依赖测试。通过依赖测试不同的测试方法间共享数据和程序状态。使用dependsOnMethods参数 实现。
Test(dependsOnMethods {testcase1})
(五) 断言 在执行自动化测试用例的时候我们需要自动判断用例执行完成后获得的输出值是否与预期值一致这个时候就需要用到断言功能。TestNG中提供了一个Assert类org.testng.AsserTestNG中提供了一个Assert类org.testng.Assert类是作为放置一系列断言的静态方法的容器。
Assert.assertTrue(select1.isDisplayed());//断言判断select1元素是否在页面存在
常用的断言
assertTrue判断是否为true。 AssertFALSE判断是否为FALSE。 AssertNull判断是否为空 AssertNoNull判断是否不为空 AssetEquals判断是否相等 AssertNoEquals判断是否不相等