我应该学习Python还是Java来进行自动化测试?

我是编程的新手。请分享您的想法或任何有用信息的链接。

评论

您是否与开发人员合作-如果是,他们使用什么?为什么不露比?还是Perl?

我想学习Selenium WebDriver,但是我不知道如何编码。我是一个手动测试人员,想要进入自动化领域。

另请参见sqa.stackexchange.com/questions/1674/…

这非常接近@ user246指出的问题(它有很多好的答案,而且措辞更好),如果它没有很好的回答,我倾向于将其作为重复项关闭。你觉得呢?

让我们在Meta中进行讨论。

#1 楼

由于您正在研究Selenium(作为测试框架),所以它是从Java开始的,因为在“ Selenium / Webdriver问题描述”上进行谷歌搜索经常会导致Java示例可以重用。用Java进行Selenium的人比使用Python的人多。 Selenium it-self本身也主要是用Java编写的。

对于一个项目,我会学习编写应用程序(被测)的语言。作为测试人员,您通常不是硬核程序员,因此如果如果团队可以用他们每天使用的,具有最丰富经验的语言为您提供帮助,则您需要测试自动化的理想帮助。这也将增加开发人员对您的测试的采用和扩展,他们可能最终必须维护/扩展测试。

如果您的学习爱好来自书籍,我建议“ Java思维” “每章都面临很大的编程挑战,以确保您理解并可以应用理论。它还详细解释了所有内容。

更新:
Java看起来也很多C ++,因此还有C#。如果您查看最流行的语言,则C派生类最为流行。学习Java将使您更轻松地切换到其他语言。

评论


langpop.com链接已损坏。

– FDM
17年12月13日在9:14

将其切换到Tiobe索引:tiobe.com/tiobe-index

– Niels van Reijmersdal
17年12月13日在11:07

或者查看SE调查:insights.stackoverflow.com/survey/2017#technology

– Niels van Reijmersdal
17年12月13日在11:08

#2 楼

学习Python或Java自动化不是强制性的,但是最好了解Java概念(或在自动化中使用python时为python概念)和语言的基本知识。

如果您需要了解和理解selenium或testNG等框架的核心,那么您应该对编程语言知识有很好的了解。

#3 楼

我是Udacity类的粉丝:
计算机科学101:在构建搜索引擎的同时使用(并教授)Python基本的CS概念:
https://www.udacity.com/course/ cs101

软件测试:通过编写Python测试代码来教学测试
https://www.udacity.com/course/cs258

评论


尽管这些是有用的资源,但它们并不能真正回答最初的问题。 (诚​​然,原始问题确实要求提供链接,但是您对主要问题有何看法?)

– testerab
2014年2月8日14:23在

#4 楼

如今,无论是开发人员还是测试人员,我们都需要了解一种开发语言,而我的建议是:Java或Python都做得很好。但是学习python更容易,对于给定的功能,python中的代码行数也非常少,与Java相比,代码的可维护性更容易并且结构也非常简单。

但是资源可用性(即库) ,工具,端到端集成支持)由于Java的广泛使用而略高。

尽管如此,过去4-5年以来Python发生了很大的转变,它正在接管软件行业,并且未来似乎是Python,因为它显然是在教育水平上引入的(在印度和世界其他地区)我不确定(),并且那里不存在Java,C ++是可选的。可以使用许多Python实用程序来满足大多数技术领域的需求。

从工作的角度来看,如今使用Java的Selenium的工作要多于使用Python的Selenium。

Java也是一种非常好的语言,但是学习Java比学习Python要花更多的时间。

现在要编码多长时间是需要做出的重要决定之一!

评论


自从几年前麻省理工学院(MIT)引入Python作为Comp-Sci和non-COmpSci轨道的第一门编程语言以来,美国许多大学也正从Java转换为Python作为第一语言。

–Peter M.-代表莫妮卡(Monica)
17年12月11日15:21

#5 楼

毫无疑问,从Python开始。

Python可以对初学者产生巨大的影响。我记得我的一个朋友的孩子在一个夏令营里度过了几个星期,他们学习Java或C ++,并且感到非常困惑,并且不确定他是否想学习计算机。我启动了Python解释器,并向他展示了如何变得容易,并且我还记得他脸上的笑容解释了​​一切。

起步时,Python变得更容易了,原因如下:
<动态类型:动态类型:如果变量的类型可以(通常是),则表示“正常”。在Java中,类型更加复杂和混乱。

解释器,使您可以编写“一次一行代码”并尝试表达式,而无需编写小程序来测试概念,例如您必须在Java
便捷函数的巨大库中进行操作,该函数库称为“包含电池”

调试器,该调试器使您可以轻松检查对象以及对象具有的方法。因此,您无需花大量时间阅读文档,而是可以尝试使用代码免费学习在线语言,以学习该语言,其中包括出色的在线课程,有些甚至使用“在浏览器中使用python”方法,所以您甚至都不会需要安装Python
Python是旨在作为人类优先阅读的第一语言。

Python代码可以是过程性的(最容易入手和理解),面向对象或功能性。您可以从简单的过程开始,使用现有的Python对象将长期满足您的需求。在Java中,对象是唯一的方法。

Java对象常常使他们感到困惑:例如,有多种整数类型:Integer(是对象)和int(不是)。我已经看到了它给初学者带来的困惑,而且以不同的精度(他们可以容纳多少个数字)给初学者造成了困扰。在Java中使用错误的类型将导致编译时或更严重的运行时错误。 Python只有一种整数类型,它将在内部转换为所需的任何精度。与数组大小相同:如果数据增加并且不适合,Java将出现运行时错误,Python将使数组大小增加一倍。

Python对于许多不适合Java的任务也很出色:用于处理文件,解析和分析文本文件(如日志文件),自动化系统管理任务的小型程序。

Python是为那些不是计算机科学/工程学专家,需要某种语言的人设计的努力帮助他们解决问题。

免责声明:显然,没有灵丹妙药。即使在Python中,如果使用错误的类型,也会出现运行时错误。

评论


我要在这里不同意。 Python破坏了新开发人员。 Python引入了大多数语言未强制执行的功能和标准。

–杰里米·科瓦尔斯基(Jeremy Kowalski)
17年12月11日在17:53

@JeremyKowalski-我要同意你的观点。是的,Python显示了其他语言是如何不足的,并迫使程序员工作过度,而不是仅仅解决问题并闭嘴。 :-)这就是为什么我更喜欢Python,但我承认我确实知道幕后情况,对于不这样做的Python用户,使用其他语言可能会有些混乱,直到他们学习了绳索。

–Peter M.-代表莫妮卡(Monica)
17年12月11日在19:32

#6 楼

就个人而言,我必须建议您学习Ruby。大多数BDD自动化工具(例如Cucumber和RSpec)都来自Ruby社区,并且它提供了许多可用的测试自动机工具。

由于您是编程的新手,我强烈建议您转而去代码学院并进行免费的在线ruby培训。

我还建议您拿起一本黄瓜书,然后开始进行学习。

#7 楼

这取决于您想来的软件开发分支。但我建议您学习Java,因为它是当今最流行的语言之一(http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html)。如果您将学习Java,则应针对桌面,Web和Android开发测试。我也建议您学习Python,Shell,Javascript-它们易于学习,并且可能会使用许多应用程序。

评论


也许您可以提供更多有关可能影响决策的因素的信息?那将使您的答案更有用。

–凯特·保罗(Kate Paulk)
2014年3月11日在11:03

#8 楼

对于自动化测试,您必须学习编程语言。
当然,第一步可能是使用播放和记录工具(例如Selenium IDE或CodedUI)进行操作

,但是对于固态框架系统,应该在CVS系统(git或svn)中编写堆代码,使用模式,解包和存储代码。

我认为,第一语言必须与开发人员使用的语言相同。他们可以帮助您并获得使用代码的热门技巧。

要进行开发的第一步,请访问以下链接:

WebDriver文档

Codeacademy,其中您可以使用python,ruby和其他工具进行第一步

Webdrives模式

Git

祝你好运!

#9 楼

如果您要自己学习(如果您的公司没有购买必须使用的昂贵的自动化工具),我建议您从基础编程语言课程开始,最好与开发人员使用的语言相同,请购买本书并从头开始

之后,请看一下webdriver文档并开始构建框架(您经常使用的一组功能,以节省时间,并使代码易于阅读和调试) 。我认为最好使用“ C#+ Visual Studio + Git”或“ Java + Eclipse + Git”,如果您的开发人员使用python或ruby可以为您提供帮助,那么我会更好。
< br无论如何,仅凭我的经验来讲,这里没有基础知识...

#10 楼

答案是肯定的。

您应该对编程有一定的了解,以便能够适应您所处的情况。需要时,您应该能够学习特定的语言来编写自动化测试。例如,硒可以用于多种语言,因为它的API几乎没有区别。因此,“挑选新东西”情况的重点是编程语言本身和技术(如果您在Java环境中,应该知道纯Java和JEE之间的区别),而不是硒本身。

这是我的情况。当我开始从事IT工作时,我只了解php。后来我学习了Java,并在Java中使用Selenium编写了许多自动UI测试。后来,我换了工作,不得不学习如何使用c#来做到这一点。现在,我的女友必须学习如何使用Ruby来做同样的事情,她要求我提供帮助,因此我不得不学习Ruby。我经过“挑选新东西”过程的时间越多,就越容易掌握完成工作所需的知识。

有时候我的工作只是测试而不是编写自动化测试,因为这也是开发人员的任务。因此,如您所见,创建自动化测试不需要具备编程技能,因为有时候测试自动化是开发任务的一部分。但是,如果您不仅能够参加测试创建(BVA,QP等),而且还能参加测试自动化,那么您不仅会因为自己的知识,而且也会因为自己的态度而受到尊重。

总的来说,我的知识是肤浅的(我敢说我的技能足以成为一个经验丰富的初级程序员,但是由于我到目前为止所看到的东西,我的整个IT经验足以成为一个高级)。所以我必须花时间使它变得更强大。但是,作为一名测试人员,我是受人尊敬的,因为我有技能并且学得很快。

#11 楼

以下是Selenium接受的每种特定语言的一些文档:



JavaDoc

Ruby Docs

Python文档
.Net文档

这些应该可以帮助您开始使用每种语言的Selenium。

下面是Java和Python之间的详细比较。它说明了Python通常比Java更简洁,这是事实。使用Python,最终可能会获得更少的代码。这可以带来巨大的好处,并使学习Python变得容易得多。


个人偏好

如果我必须在Python或Java之间进行选择,我可能会选择Java。它只有一个更好的未来,并且比Python更可能是系统正在使用的东西。在我看来,它也更容易学习。

如果必须在所有语言之间进行选择,我可能会建议Perl进行软件测试。许多测试与验证和字符串有关,Perl可能是最好的语言。另外,尽快开始使用正则表达式,这会节省大量时间。而且由于正则表达式的基础知识已遍及大多数编程语言,因此它将为您提供优于市场上许多其他测试人员的巨大优势。

最终,这取决于您要完成的工作。您想成为出色的工作还是想要一份令人印象深刻的简历?我可以在自己的简历中列出9种编程语言,因为我在很多情况下都曾涉猎其中9种。如果需要执行很多String解析,则选择Perl。如果需要快速脚本,请使用Python。 Java更高级。而且由于我的公司似乎对所有质量检查内容都喜欢ASP,因此当我需要更新内部质量检查站点时,通常是ASP.Net。

#12 楼

我建议使用Python,因为它非常易于学习。如果要使用Selenium网络驱动程序,则可以浏览以下文档和示例代码,网址为http://docs.seleniumhq.org/

#13 楼

这完全取决于您的项目要求和要使用的工具。要开始自动化测试,您不一定需要先掌握任何语言。

当然,了解一种编程语言将要使用或设计您的工具是有帮助的。最好先了解自动化的概念和框架。

对于所有人来说,对于Selenium Webdriver,可以从基本的Java技能开始。对于Python与Java的问题,一些因素起着作用


项目类型工具类型
操作该工具。
最新的框架类型

另一方面,它具有脚本编写技能,总是可以补充的。对于质量检查而言,Perl,Python,VBScripting等是一些有用的技能。

#14 楼

不要将自己束缚于某种语言。了解良好的编程设计基础。了解何时使用条件循环,或何时使用内联代码。

我不知道应该使用哪种语言,但我知道OOP和测试的基础设计。从伪编码开始,然后确定完成任务的“方式”。稍后将回答“实施”哪种语言或选择哪种工具的问题。

#15 楼

尽管不是强制性的,但是作为一个新的程序员,Python和Ruby是开始的更好选择。从我的个人经验来看,他们的学习曲线更陡峭且非常有趣,这将使您的自动化探险真正令人愉快。

#16 楼

在测试自动化中,从您的语言入手非常重要,这意味着您要放心,我的建议是:Java或Python都做得同样好,但是学习python比Java容易,python中的代码行数也非常多

但是,由于Java的广泛使用,Java的资源可用性(即库,工具和端到端集成支持)要高一些。


尽管如此,过去4到5年间Python发生了很大的变化,它正在接管软件行业,并且未来似乎是Python,因为它显然是在教育水平上引入的(在印度和世界其他地方,我不是当然可以),并且那里不存在Java,而C ++是可选的。有许多Python实用程序可满足大多数技术领域的需求。

#17 楼

尽管Python被许多人认为是一种更容易学习的语言,但这并不是要考虑的首要因素。我将从Java入手,因为我认为它比Python提供了更好的编程基础知识,如果将来您决定更改为另一种语言(如C#或C ++),这可能会很有用。