常用的自动化测试工具有哪些

常用的自动化测试工具有哪些,第1张

1、Appium
AppUI自动化测试
Appium 是一个移动端自动化测试 开源工具,支持iOS 和Android 平台,支持Python、Java 等语言,即同一套Java 或Python 脚本可以同时运行在iOS 和Android平台,Appium 是一个C/S 架构,核心是一个 Web 服务器,它提供了一套 REST 的接口。当收到客户端的连接后,就会监听到命令,然后在移动设备上执行这些命令,最后将执行结果放在 >1
新建一台Jenkins服务器,安装并配置好Jenkins
2
配置一个自动化测试脚本的代码库,可以使用Git或者SVN等版本控制工具。然后在Jenkins服务器上配置一个Job,负责自动的同步最新代码到Jenkins服务器上。
3
配置要跑自动化测试的虚拟机VM,推荐干净环境下安装需要跑自动化测试的依赖软件工具或者配置以及自动化测试工具(不提前安装配置也行,可以在跑自动化之前用另外的脚本自动安装配置),配置好之后关机并打一个snapshot镜像快照,并命名为prebuild或其它。
4
新建一个Jenkins Job,用来跑自动化。配置需要连接并使用的自动化测试虚拟机,配置要构建的自动化测试框架xml脚本文件(后面步骤有说明)和target,以及要归档的测试报告,邮件发送等等。
5
接下来的重点就是自动化测试框架的xml脚本文件了,首先里面定义一个target,负责获取自动化测试对象的安装包。
6
接着定义一个target(可选),负责从版本库上获取自动化测试脚本同步到Jenkins服务器上(也可以直接使用Jenkins Job本身的插件配置来获取代码)。
7
定义一个target,负责连接到虚拟机服务器,并恢复到虚拟机的原始状态例如prebuild,然后开机
8
定义一个target,负责拷贝项目产品安装包和自动化测试源代码到目标虚拟机上。
9
定义一个target,负责连接到目标测试虚拟机,并打开自动化测试工具,然后运行自动化测试脚本
10
定义一个target,负责处理自动化测试报告文件和日志文件并把它们从自动化测试虚拟机拷贝到Jenkins服务器对应的Job工作空间下。
11
最后定义一个主target,按照上面的target流程依次调用。这个主target就是Jenkins服务器上的自动化测试Job中配置的需要构建的Target。

测试人员测试的过程中经常会根据需求的不同, 将不同的测试划分为不同的测试类型, 常见的就是功能测试, 性能测试和自动化测试, 那么这三种测试有什么不同吗
1功能测试:
①又名: 黑盒测试
②依据: 需求文档
③执行: 测试用例
④方法: 等价类划分, 边界值分析, 错误推测, 因果图法, 判定表驱动分析方法, 正交实验设计方法, 功能
图分析方法
⑤错误: 功能错误或遗漏,界面错误, 数据结构或外部数据库访问错误, 性能错误, 初始化和终止错误
2性能测试:
①包括: 负载测试(指标变化), 压力测试(性能点), 强度测试, 容量测试, 基准测试, 渗入测试, 峰谷测试
应用在客户端性能的测试, 应用在网络上性能的测试, 应用在服务器端性能的测试
②具体: 通过量, 响应时间, CPU负载, 内存使用
③工具: QALoad、LoadRunner、Benchmark Factory、Webstress
④方法: 等价类划分, 边界值分析, 错误推测, 因果图法, 判定表驱动分析方法, 正交实验设计方法,
功能图分析方法
⑤过程: 测试需求与测试内容, 测试案例制定, 测试环境准备, 测试脚本录制, 编写与调试, 脚本分配,
回放配置性能测试图像, 性能测试图像与加载策略, 测试执行跟踪, 结果分析与定位问题所在,
测试报告与测试评估
3自动化测试:
①工具: QTP: 创建测试,插入检查点,检验数据,增强测试,运行测试,分析结果和维护测试等方面(回归测试)
WinRunner: 企业级的功能测试工具, 用于检测应用程序是否能够达到预期的功能及正常运行。
QA Run: 通过鼠标移动,键盘点击 *** 作被测应用,即而得到相应的测试脚本,对该脚本可以进行编辑和调试。
AutoRunner: 功能测试, 回归测试
②前提: 需求变动不频繁/项目周期足够长/自动化测试脚本可重复使用
③过程: 自动化测试需求分析, 自动化测试框架的搭建(要素: a公用的对象 b公用的环境 c公用的方法 d测试数据)
④涉及: 脚本编写(Ptython语言或shell,或Java)
⑤手机自动化测试: Monkey, Monkeyrunner, Appium(常用)
想要深入学习软件测试, 功能测试,性能测试, 自动化测试是必须了解的,传智播客软件测试课程详细描述, 朋友在传智播客学的软件测试,现在月薪135K。

1 下载必要依赖文件selenium-server-standalone-2250jar, junit-47jar,并将它们放置到工程的lib文件夹下面 (我这里使用Firefox浏览器来作为客户端,所以就不需要下载额外的浏览器执行器,如果你想用IE或是Chrome做客户端,请下载对应的执行器

2 建立一个测试工程,在工程里创建一个测试文件,并添加如下代码:

import comthoughtworksseleniumSelenium;

import junitframeworkTestCase;

import orgjunitAfter;

import orgjunitBefore;

import orgjunitTest;

import orgjunitrunnerRunWith;

import orgjunitrunnersBlockJUnit4ClassRunner;

import orgopenqaseleniumBy;

import orgopenqaseleniumWebDriver;

import orgopenqaseleniumWebDriverBackedSelenium;

import orgopenqaseleniumWebElement;

import orgopenqaseleniumfirefoxFirefoxDriver;

import orgopenqaseleniuminternalWrapsDriver;

import orgopenqaseleniumsupportuiWait;

import orgopenqaseleniumsupportuiWebDriverWait;

import javaioIOException;

import static orgopenqaseleniumsupportuiExpectedConditionsvisibilityOfElementLocated;

@RunWith(BlockJUnit4ClassRunnerclass)

public class pickTest extends TestCase {

protected static Selenium selenium;

private static WebDriver driver;

@Before

public void createAndStartService() throws IOException {

selenium = new WebDriverBackedSelenium(new FirefoxDriver(), "");

driver = ((WrapsDriver) selenium)getWrappedDriver();

}

@After

public void createAndStopService() {

driverquit();

}

@Test

public void should_open_google_page() throws InterruptedException {

driverget(">

<span style="color: #ff0000;">WebElement searchBox = driverfindElement(Byxpath("//[@id=\"lst-ib\"]"));</span>

searchBoxsendKeys("selenium");

WebElement searchButton = driverfindElement(Byxpath("//[@id=\"tsf\"]/div[2]/div[3]/center/input[1]"));

searchButtonclick();

<span style="color: #3366ff;">Wait<WebDriver> wait = new WebDriverWait(driver, 30);

waituntil(visibilityOfElementLocated(Byxpath("//[@id=\"ab_name\"]/span")));</span>

}

}

3 运行这个测试,你将看到firebox浏览器被自动启动,然后会自动的输入selenum并搜索。

这样,一个简单的自动化页面测试就完成了。有的朋友可能不太明白这段代码的含义。上面的代码中我标出了红色和蓝色两部分,我简单解释一下。Selenium是通过对浏览器的包装来进行页面处理的,因此我们首先会创建一个与浏览器相关的WebDriver对象。然后我们需要查找页面元素就是通过findeElement的方法和XPath的方式来获取页面对象(红色部分代码)。那么通常我们的一个点击 *** 作产生服务器相应,这里就需要一些时间。蓝色部分的代码就是创建一个等待对象,你可以通过XPath的方式来确定返回后页面上的哪个元素加载完了就认为页面加载完了,同时等待对象也有一个超时设置,这样即是服务器端一直不返回或出错。我们依然可以结束测试。如何更快的确定页面元素的XPath,如下:

自动化测试需要学4到6个月。不同培训机构的培训时长可能会不一样,如果是零基础的学生,培训周期一般为4到6个月,培训课程从八个阶段循序渐进,分别是计算机基础、功能测试课程、Python编程和数据库、自动化测试课程、性能测试、MySQL加强、LoadRunner和就业指导。

自动化测试的原理

GUI自动化测试的原理通过软件模拟用户实际的鼠标和键盘 *** 作,实现自动化执行和 *** 作的过程。性能自动化测试的原理通过客户端模拟多个虚拟用户并发请求,来检验服务器的性能行为是否满足系统要求。自动化测试是为了确保项目可以正常上线,项目的主流程没有bug,而手工测试就是为了发现很多很多的bug。

商业工具:
1、RFTRational Functional Tester 的基础是针对于Java、NET的对象技术和基于 Web 应用程序的录制、回放功能。工具为测试者的活动提供的自动化的帮助,如数据驱动测试。IBM RFT是一个用于功能和回归测试的数据驱动的测试平台。它支持大范围的应用,例如Net、Java、SAP、Flex和Ajax。RFT使用Visual Basic。Net和Java作为脚本语言。RFT有一个独特的功能,称为 Storyboard 测试,用户的动作被记录下来,并通过应用截图在 Storyboard 格式中可视化。RFT的另一个有趣特性是它与IBM Jazz应用生命周期管理系统(如IBM Rational Team Concert和Rational Quality Manager)的集成。
2、kylinTOP:这是一款国产的自动化测试工具,支持WEB和APP的自动化测试,其中元素智能定位是这款自动化软件主要特点,是设计理念比较超前的测试工具,算是国内众多自动化测试工具中,做的比较突出的一款。与传统的RFT和UFT相比,的确有过人之处,算是后起之秀,使用起来,简单高效、稳定。这样描述估计也没几个人能体会到的。说白一点就是一个人可以干三个人的活,使用者只需关注业务即可。
3、UFT:UFT(别名:QuickTest Professional简称QTP)是一种自动化测试工具,以VBScirpt为内嵌语言,其前身是QTP。UFT支持功能测试和回归测试自动化,可用于软件应用程序和环境的测试。UFT自动化测试的基本功能包括:创建测试、检验数据、增强测试、运行测试脚本、分析测试结果、维护测试;UFT支持两种视图,一种是Keyword View(关键字视图),另一种是Expert View(专家视图)。是一款老牌的自动化测试工具。
4、SilkTest:这个也是比较相对著名的工具,不过同样还是没有了解过,对于商业的工具,因为其占地面积大,还要破解等麻烦事,最关键的是使用的公司少,所以只使用过QTP,其它的一概未了解过
开源工具:1、Selenium:这个应该大多数人都知道的,现在也是大多数互联网公司在使用的测试框架;selenium仅支持web的UI级别测试,但是其优点在于:a、支持多种语言编写测试脚本,比如:java、python、ruby、perl等;同时也就意味着其后的支持类库也是很多的b、支持多浏览器,如:ie,ff,safari、chrome等c、支持多平台,如:windows、linux、MAC、android、iphone等d、支持分布式执行,一套测试用例可以同时分布到不同的测试机上执行,而且还可以进行任务细化,比如:针对liunx执行系统只分配linux下需要执行的用例此外还有录制工具支持,简单也说,web类测试基本上是首选,不过对flash的支持好像不是太好其主要分2个版本,1X版本是以js驱动来进行自动化实现的;2X重新开发了webdriver来代替js驱动,直接调用浏览器底层接口来完成自动化实现的前提:如果使用remote或者RC功能,需安装jre下载地址:>

手工测试和自动化测试的有效结合:

自动化脚本首先在重复执行 *** 作和固定流程 *** 作方面占优,而有经验的测试人员在灵光乍现的时候发现的一些稀奇古怪但是却影响很大的bug,是无法用自动化脚本来发现的。最好的方案是自动化测试与人工测试结合,自动化脚本来干脏活累活,测试人员来做有创造性的充满乐趣的测试工作。

举例论证:

在一个实时的项目监控的系统中,客户通过手机或固定电话拨号完成数据的输入,当接收到的号码一旦与已知设定不符合的时候,触发报警系统,在打印该输入号码同时还要将它转存到磁带上。

测试分析:在该项目中,需要对客户号码、报警器、还有输出设备(打印机和磁带机)这三个方面进行测试。

对于电话号码而言可能有好多的形式,但是无论如何,它们的值一定是数字组成的,对接收方来说,只有两种情况,收到了合法的数据和收到和非法的数据。所以它适合使用程序来模拟输入数据和根据输入判断预期的输出结果。可以使用自动化的方式来实现。

对报警器而言,它只有两种状态报警或不报警。所以同样可以用合法的数据来触发报警和使用非法数据来测试来判断其是不是不报警。所以同样可以实现自动化。

再看第三个测试对象,输出设备的测试,对于这种物理设备的测试只能使用手工测试。

手工测试特点: 

1、测试人员要负责大量文档、报表的制订和整理工作,会变得力不从心。

2、受软件分发日期、开发成本及人员、资源等诸多方面因素的限制,难以进行全面的测试。

3、如果修正缺陷所需时间稍长,那么想将手工测试应用于回归测试将变得异常困难。这是因为需要测试的测试用例太多。

4、对测试过程中发现的大量缺陷缺乏科学、有效的管理手段,责任变得含混不清,没有人能向决策层提供精确的数据以度量当前的工作进度及工作效率。这样往往会导致最后的汇总报表数据不准确。

5、反复测试带来的倦怠情绪及其它人为因素使得测试标准前后不一,测试花费的时间越长,测试的严格性也就越低。

6、难以对不可视对象或对象的不可视属性进行测试。

自动化测试的特点:

1、可以运行更多更频繁的测试。

2、可以执行一些手工测试困难或者不可能做的测试。如对不可视对象的测试,利用面向对象的自动化测试脚本就很容易实现。

3、可以更好地利用资源。在夜间执行自动测试。

4、测试具有移植性和可重复性。好的测试脚本往往具有较好的平台移植性。

5、可以更快地将软件推向市场。因为自动测试节省了大量的时间。  但是自动化测试要求的前期投入比较大,而且要求人员必须经过严格的培训。

扩展资料:

手工测试和自动化测试各自适用的场合如下:

1、测试很少执行的项目中。当测试用例执行频度太小时(一年一次),我们可以直接使用手工测试就可以了。

2、软件运行仍然不稳定时,适合使用手工测试。

3、测试结果很容易通过人验证的测试项目适合手工测试。

4、测试项目中涉及物理交互比较多的时候适合手工测试。如需要经常查看打印机,绘图仪的输出时。

5、软件维护时使用的回归测试适合自动化测试。

6、执行压力测试时适合自动化测试。例如测试服务器的最大访问上限等。

7、配置和兼容性测试等项目适合自动化测试。

参考资料来源:百度百科-手工测试

                    百度百科-自动化测试

自动化测试不宜大力投入
不管是自动化测试还是接口测试,都不宜在前期大量投入。当前业务是否适用自动化,哪些框架或者工具更适合,适合做接口自动化还是 UI 的自动化?如何让自动化达到收益和效果?
这些问题都需要根据团队和业务具体的情况去尝试,找到合适的才行。如果前期投入太大,团队对其期望太高,非常容易在遇到一点挫折的时候对自动化丧失信心。
另外,投入太大,毕竟加大人力或者减少手工测试的投入,会造成测试资源的紧张。在项目时间和成本的压力下,测试管理者需要顶着巨大的压力,这本身就很难成功。
可以安排一些技术强或者技术兴趣浓厚的成员,在项目允许的情况下减少其手工测试工作量,让其可以利用部分工作时间和部分业余时间尝试做自动化,先局部功能尝试,能够有效果,在扩大范围。逐步达到一定的自动化规模。
以接口为主UI为辅
UI 自动化因其运行环境的问题,会导致运行速度慢,对环境依赖过高。同时因程序界面的多变性,导致自动化脚本维护成本大大增加。
接口测试有很多优于 UI 自动化的地方。但是接口测试也自有其短板,对流程性质的测试并不适合用接口自动化来覆盖。接口自动化更适合覆盖单一接口功能的检查。
所以我们可以采用核心业务流程使用 UI 自动化,单一功能使用接口自动化,两种层面的自动化结合的方式来进行。
不轻谈自动化测试平台
目前测试界开始流行起自己开发测试平台(以接口为主)。简单来说就是模仿常见的接口测试工具,用 Python 或者 Java 写成了一个 web 版本的。
当然也有其理由,“定制性更强!”但是毕竟是软件都需要进行测试,花大量精力开发的平台并不稳定,而本身功能和理念上并没有太多更新。而这样的一些功能,市面上的绝大部分测试工具都能胜任。
如果是为了提高个人能力,项目时间有空余,怎么玩都可以。若是要在实际工作中应用,那么就有点得不偿失了。
自动化测试中,工具的重要性始终是最低的。理念、思维和环境治理才是最重要的。
通过不断小范围试错,找到适合自己团队的自动化策略才是最重要的。任何技术脱离实际应用都是耍流氓。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12622137.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存