随着互联网的发展,自动化测试所面临的挑战也随之越来越大。当项目要频繁做回归测试时,手动测试方式已经无法应对,自动化测试成为解决问题的关键。
Python凭借其灵活性,在自动化测试方面已经被广泛使用,能够大大提高测试效率。那么,软件测试自动化到底需要学习哪些知识呢?
阶段一:掌握Python的基础语法
阶段二:掌握Python自动化测试常用库
众所知周,Python有非常丰富的第三方库,这也是Python代码简单优雅的原因之一,那么,软件自动化测试常用的库有哪些?
1.基本库:
sys 程序和Python解析器的交互
os 启动新进程;操作文件和目录
re 正则表达式,字符串匹配
string 基本字符串操作
inspect 提供自省和反射功能
importlib 支持动态导入
bitstring二进制数据处理
zipfile 压缩解压文件
tarfile 压缩解压文件
random 随机数,概率
2. 命令行,读取配置:
optparse 处理命令行选项
glob 文件路径查找
yaml 访问yaml数据文件
ConfigParser 读取配置文件
xml XML库
pickle 序列化
json 序列化
3. 网络请求相关:
libxml2 XML解析器
urlparse URL解析
urllib 访问URL资源
urllib2 访问URL资源
cookielib http客户端的cookie处理
requests 神器,用于发送网络请求,常用于接口测试
httplib http请求客户端
BeautifulSoup 从HTML或XML文件中提取数据的Python库
4. 大数据和数据库相关:
avro avro是一个数据序列化系统
etcd etcd访问库
pyspark spark库
hdfs hdfs库
pyhive hive库
redis 访问redis数据库
rediscluster 访问redis集群
pymongo 访问mongodb
kafka 访问kafka
pykafka 访问kafka
sqlalchemy ORM库
MySQLdb 访问MySQL数据库
阶段三:自动化测试常用框架
unittest:比较基础,二次开发方便,适合高手使用,是python自带的单元测试框架,可以用来作为我们自动化测试框架的用例组织执行框架unittest流程:写好TestCase,然后由TestLoader加载TestCase到TestSuite,然后由TextTestRunner来运行TestSuite,运行的结果保存在TextTestResult中,我们通过命令行或者unittest.main()执行时,main会调用TextTestRunner中的run来执行,或者我们可以直接通过TextTestRunner来执行用例。
pytest/nose:更加方便快捷,效率更高,适合小白及追求效率的公司,且pytest的信息更加详细如果你的项目比较小、复杂度比较低,Pytest 是最适合的自动化测试平台。非常多的 Python开发者都喜欢它,他们大部分用它来进行单元测试。它也具有 Robot Framework 所闻名的验收测试能力。
Pytest最好的特性之一是,它提供了测试用例的详细失败信息,使得开发者可以快速准确地改正问题。它兼容最新版本的 Python,还兼容unittest、doctest 和 nose,开箱即用。它还有包含更多功能的插件和多样化的现有测试技术和测试用例。事实上,有 300多个可用插件来自它的活跃社区。
该平台设计用于编写更简单错误率更小的代码。你可以将 Pytest 与诸如 Selenium 和Splinter 之类的图形用户界面一起使用,来使得测试工作更轻松。
RobotFramework:由于有界面及美观的报告,易用性更好,灵活性及可定制性略差 Robot Framework 是最流行的Python 自动化测试框架。
它是完全用 Python 开发的,对于验收测试非常有用。这个框架可以运行在 Java 和.NET环境。它还支持跨平台,例如 Windows、MacOS 和Linux。
这个产品是由世界上一些著名的测试人员创建的,拥有关键词驱动方案。它有如此多可用的工具和库,使得这个框架非常先进和健壮。它是一个开源框架,并且留有API扩展空间。表格式的测试数据语法和关键词驱动测试使得它在全球的测试人员中非常流行。它无疑是最易用的自动化测试框架,并且允许你进行并行测试。
下面是测试资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
最后: 可以在公众号:软件测试小dao ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
不要孤军奋战,最好是能抱团取暖,相互成就一起成长,群众效应的效果是非常强大的,大家一起学习,一起打卡,会更有学习动力,也更能坚持下去。你可以加入我们的测试技术交流扣扣群:644956177(里面有各种软件测试资源和技术讨论)