随着互联网的发展,自动化测试所面临的挑战也随之越来越大。当项目要频繁做回归测试时,手动测试方式已经无法应对,自动化测试成为解决问题的银弹。
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 序列化
- 网络请求相关:
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 扩展空间。表格式的测试数据语法和关键词驱动测试使得它在全球的测试人员中非常流行。它无疑是最易用的自动化测试框架,并且允许你进行并行测试