本书主要介绍如何用Python实现接口自动化测试。全书主要内容包括接口基础、接口手工测试、编程前的准备、用Python处理MySQL数据库、用Python发送HTTP请求、用Python处理HTTP返回包、用Python导出测试数据、接口自动化起航及实际接口场景演示。
本书所介绍的方法是作者在实际项目中实践过的,拥有这本书,就拥有了整套的源码。按照本书的环境设置,整套源码是完全可运行的。本书适合初、中级测试工程师,对Python语言感兴趣的人员,以及想要提升技术、突破技术的人员。
引导测试人员攻克Python入门难点
拥有本书,就拥有整套的源码,按照本书的环境设置,整套源码是完全可运行的
前言
本书整体设计思想
自动化测试的前景
软件测试,在大多数的公司中还是处于相对弱势的地位,原因主要在软件测试本身:相比于软件开发,软件测试无论进入门槛还是编程能力,要求都低一些;而且大多数公司的软件测试还局限于手工测试。这就造成了业界对软件测试的偏见——软件测试只是随便按一按鼠标,技术含量低。
诚然,软件测试离不开手工测试,但不能只有手工测试没有编程能力。技术性测试的方法有很多,常见的有自动化测试、性能测试、白盒测试、安全性测试等,这些测试方法都需要测试人员有比较强的编程能力。其中,自动化测试的进入门槛较低,但效果最明显,所以,自动化测试可以作为广大测试人员进入技术性测试的切入点。
现阶段,薪资高一些的测试岗位,普遍要求从业人员具有自动化基础及实际操作能力。所以,从就业角度来说,自动化测试是突破测试行业薪资瓶颈的一条捷径;从测试人员的职业发展来说,学习一定的技术,有助于建立技术思维及行业内部的沟通,便于将来继续走测试技术路线,或是转到其他岗位。
本书写作目的
相信很多测试人员和我的经历很像,从最开始的手工测试开始积累经验,在这个过程中肯定想过做自动化测试、做技术。我最开始是用QTP(Quick Test Professional,一种自动测试工具)录制了登录功能,看着浏览器自动打开、自动输入网址、自动登录,那种愉悦的心情是不言而喻的。但是,真正能转型成功(或者说能有一技之长)的测试人员还是偏少的,原因就在于难以突破关键技术点。
各种编程语言本身都有相同点,只要掌握突破了一门,其他语言学起来也就没那么难了。所以,如何突破一门语言,如何跨过第一道门槛,成为制约测试人员技术能力提升的关键点,这也是本书编写的目的——引导测试人员突破Python 的入门难点。
为什么要选择Python?最主要的原因是——合适。正所谓“鞋合不合适只有脚知道”。
Python 简单易学的特点,恰好符合测试人员的要求。很多时候,我都在怀疑Python 是不
是专为测试人员量身打造的。关于Python 的更多优势,读者可以在正文中看到。
本书特点
作者在构思本书的时候,也翻阅了市面上很多同类技术书籍,发现绝大多数都有一个通病——采用教科书的写作模式。所谓“教科书模式”,即按照“语言的历史→语法→章节练习→案例讲解”的模式来展开。这种模式很经典,内容也很翔实,但是太过于死板和理论化。这样的书虽然仔细阅读后确实能收获很多,但是不利于快速上手。
读教科书模式的书时,学习者很容易半途而废,包括我自己,经常是看了不到三分之一的内容就放弃了,所有的新鲜劲都在语法和练习中被消磨殆尽了。我真正开始写脚本并不是从某本书开始的,而是从实际的项目拆分入手的,遇到问题再去翻这类教科书,纯粹将它当作工具书来使用。
所以,本书不是按照传统的教科书模式编写的,而是从实际要实现的目标着手,一步步将目标拆分成知识点,再对知识点进行突破,将每个点拆分成一个个小的突破点——类似于“拆书帮”(某个学习社区)的形式,将“Python+MySQL 处理HTTP 协议接口的过程”拆解到一个个章节中。读者在每个章节中都能学到完整的一个知识点,最后串联各个知识点,实现最终的学习目标。关于如何分解、如何逐个突破,读者可以在正文中看到。
读者通过实现每个章节的功能,逐步建立对Python 的理解,通过小篇幅的功能实现来提升成就感,激发自己继续往下看、继续往下学的信心和勇气。本书所介绍的方法是作者在实际项目中实践过的,并且也被很多业内同行所采用。读者不仅可以将其用在Python 学习中,也可以用在其他语言甚至生活中。
读者对象
? 对Python 感兴趣的人员;
? 想在项目中实现HTTP 协议接口自动化测试的人员;
? 想要提升技术的人员;
? 初、中级测试工程师。
代码下载
本书配套代码的下载地址:https://www.broadview.com.cn/ 。
有关于任何问题、建议和疑问,欢迎发邮件到:smallprocess@yeah.net
致谢
感谢Guido van Rossum 于1989 年发明了Python。
感谢电子工业出版社审校此书,以及为本书能够快速出版而付出的辛苦。
感谢何飞在本书构思和出版中所做的指导和帮助。没有他的指引就没有本书的出现。
感谢我的家人,感谢你们对我工作的理解和支持,有你们一直的付出才有今天的这本书。
作 者
书感觉不怎么样,例子不通用,API交互方面都没怎么讲。前面说循序渐进的教学方法不好,可后面只是贴出一大段代码然后讲个思路,也算是快餐书通病了,这方法对我这种习惯看循序渐进的教科书的人来说感觉不是很好。而且样例不清晰,结果显示没有把api请求的内容与数据库里呈现的数据进行对比,我看的是一头雾水。跟接口自动化测试这个主题关联性不强,我是个新手,没有我最想看到的如何把任何一个json、multipart/form-data等类型的content-type解析出来他们的请求体,并发送数据这个过程。可能也是因为我是个新手,所以可能看不到更深层的,比如设计层面的东西,故说出来的全是自己觉得书里不到位的地方,触犯众怒或者作者的话,我在此道歉了。
作者勘误:源码中提供的SQL有部分错误一直没更新,请从该地址下获取最新的sql语句文件,给你造成的困惑是否抱歉
https://pan.baidu.com/s/14cge4Mo6ygmk04XWXKVC5A
提取码:xctt
config_total SQL文件不能直接运行
运行request库
“C:\Program Files\Python36\python.exe” E:/Autotest_inte**ce/common/request.py
Traceback (most recent call last):
File “E:/Autotest_inte**ce/common/request.py”, line 114, in <module>
url_inte**ce=params_inte**ce[‘data’][‘url_inte**ce’]
TypeError: list indices must be integers or slices, not str
作者勘误:源码compare.py中方法:__recur_params的第一个if条件替换成下面,否则会出现异常,导致结果为空。源码压缩包暂未修改,请注意!
if isinstance(result_inte**ce, str) and result_inte**ce.startswith('{'):