Python和Java语言,哪个更适合做自动化测试?
Posted 丸子说测试
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python和Java语言,哪个更适合做自动化测试?相关的知识,希望对你有一定的参考价值。
经常有测试新手问我:Python和Java语言,哪个更适合做自动化测试?本来想简单的回答一下的,但又觉得对不起大家对小编的信任。因此,小编今天专门写了一篇文章来回答这个问题。欢迎各位大佬补充~
1、什么是自动化测试?
说起来,我第一次知道自动化测试时,还仅仅停留在它有一个自带「高级感」的称谓上,其他基本一无所知。后来,在学习的过程中,我才逐渐对它有了概念:自动化测试就是,使用独立于待测软件的第三方软件或工具,来自动执行测试、比较实际结果与预期,并生成测试报告这一过程。
简单来说,就是将手动测试,通过代码转化为机器执行测试的一个过程。当然,我猜大家对此都有了解,在此就不赘述啦。
2、自动化测试的工具有哪些?
对于很多测试新手来说,由于缺乏一定的工作经验,在选择自动化测试工具时,往往都是按照自己熟悉的工具来进行。
对此,为了帮助大家选择合理的测试工具,以便该工具能够满足你的测需求,进而节约测试成本,所以,下面给大家盘点一下主流自动化测试工具的特点:
Selenium
Selenium是网页应用中最流行的开源自动化测试框架。随着Selenium近几年的不断地完善,它已成为许多Web自动化测试人员的选择。尤其是对于一些具备脚本研发能力的人来说,更是如此。
这是因为Selenium支持多系统环境(Windows,Mac,Linux),以及多种浏览器。并且,它具备灵活性,测试人员可以写各种复杂的、高级的测试脚本,来应对各种复杂的被测场景或被测对象。
另外,Selenium支持多种语言,像Java,Groovy,Python,C#,php,Ruby 以及 Perl,都可以编写。
Appium
Appium是一个移动端自动化测试开源工具,支持ios和android系统,同时支持多种语言编写脚本。这是因为Appium 是一个C/S架构,核心是一个Web服务器。当收到来自客户端的命令时,就会在移动设备上执行这些命令,并将执行结果通过相关协议(如HTTP)返还给客户端。
Jmeter
JMeter是一个开源的Java桌面应用程序,主要用于web应用程序的接口负载测试,并支持接口单元测试和部分功能测试。
它的优点非常多,比如:支持生成动态报告;可移植;具备强大的测试IDE等。
另外,它还支持不同类型的接口协议、数据库,等等。
Postman
Postman 主要用于接口测试中。
它能为我们提供功能强大的Web API和HTTP请求的调试,并发送任何类型的HTTP请求、附带任何参数和Headers。
不仅如此,它还提供测试数据和环境配置数据的导入导出,付费的Post Cloud用户还能够创建自己的 Team Library来用于团队协作式测试,等。
Monkey
Monkey更适合稳定性测试。它适用于iOS和Android系统。通过adb shell,生成用户或系统的伪随机事件。
LoadRunner
LoadRunner主要用于预测系统行为和性能的负载测试工具。它通过模拟大量用户实施并发、负载等行为,来实时监测产品的性能。
LoadRunner还能对整个企业架构进行测试。企业使用LoadRunner能最大限度地缩短测试时间、准确预估产品性能,并加速应用系统的发布周期。
3、Python 和Java 哪个语言更适合做自动化测试?
好了,说了那么多,如何判断哪个语言更适合做自动化测试呢?别急,大家接着往下看。
Java和Python是我比较熟悉两种脚本语言。刚毕业那两年,Java非常流行,而我当时也比较迷茫,不知道自己将来何去何从。
后来我从事了一段时间开发后,想转行做测试,所以就重新开始考虑学别的编程语言了。那段时间,Ruby和Python都挺流行的。Ruby有Watir自动化测试框架,而Python也是大势所趋。所以,在我进入新团队后,果断选择了Python。
正如大家口头禅那样“人生苦短,我用Python”。自从做了测试后,用Python的时间越来越多。然而,在做一个Android测试的内容时,Java再次闯入我的世界。为了跟进项目,我又拿起了我懂得不太多的Java,重新学习。
所以,如果你要问我哪个语言更适合测试,我是这么认为的:
1)从应用广度上来说,当然是Java最主流,尤其是在Android项目中;
2)从业内大家的使用程度来说,Python的普适度更广泛,因为它简单,且效率高。
4、自动化测试面试题目汇总
最后,给想要成为自动化测试工程师的小伙伴们,准备了一些笔试面试题,希望对你有用哈~
1)super在Python脚本中使用,有什么区别?为什么要使用 super?请举例说明。
super 主要用于继承父类的方法、属性,使用它可以提升代码的复用性,降低维护成本。在Python2版本中,要在参数中写成Object。但如果是Python3,就不用写。
另外,在修改代码时,使用super可以只修改一处。
代码举例:
2)快速编写前端 HTML、JavaScript、Vue 代码。
html、javascript 代码:
Vue 代码编写:
3)L = [1, 2, 3, 11, 2, 5, 3, 2, 5, 3],用一行代码得出 [11, 1, 2, 3, 5]
答:list(set(L))
4**)L = [1, 2, 3, 5, 6],如何得出 ‘12356’?**
注意,个人觉得这个题有坑,列表的元素不是字符串,所以不能 ‘’.join(L)。以下是过程:
5)列表和字典有什么区别?
(1)获取元素的方式不同。列表通过索引值获取,字典通过键获取。
(2)数据结构和算法不同。字典是 hash 算法,搜索的速度特别快。
(3)占用的内存不同。
6)如何结束一个进程?
(1)调用 terminate 方法。
(2)使用 subProcess 模块的 Popen 方法。
7)什么是ORM?为什么我们要使用ORM?
ORM 框架的作用是将类和数据表进行对应,只需要通过类和对象,就可以对数据表进行操作。好处就在于,使用ORM可以省略对应,不用再写SQL 语句了。另外,ORM还有另外一个作用,就是可以根据设计的类,生成数据库中的表。
最后为方便大家学习测试,特意给大家准备了一份13G的超实用干货学习资源,涉及的内容非常全面。
包括,软件学习路线图,50多天的上课视频、16个突击实战项目,80余个软件测试用软件,37份测试文档,70个软件测试相关问题,40篇测试经验级文章,上千份测试真题分享,还有2021软件测试面试宝典,还有软件测试求职的各类精选简历,希望对大家有所帮助……
关注我公众号:【程序员二黑】即可获取这份资料了!
如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入我们的群:785128166 大家一起讨论交流,里面也有各种软件测试资料和技术交流。
推荐阅读
以上是关于Python和Java语言,哪个更适合做自动化测试?的主要内容,如果未能解决你的问题,请参考以下文章