导读
本文将介绍怎样运用python快速进行http/https接口主动化测验脚本建立,完成主动恳求、获取成果、数据比照分析,导出成果到Excel等功用,包括python的requests、pandas、openpyxl等库的根本运用办法。
测验需求介绍
通常,在咱们的项目中,咱们的接口测验需求一般都是结构不同的恳求数据,然后发送恳求到接口,拿到接口回来后,对回来的字段进行提取和校验,最终将成果存放在excel表格中便利查阅。接口一般是http或https恳求,发送的结构一般是json body或json结合一些文件附件,恳求的回来成果都是json格局,咱们的测验case能够用Excel或许数据库保存,成果能够保存在数据库或许直接存在Excel中,下面将详细拆解需求及逐渐介绍完成进程。
恳求体的定制和发送恳求
结构每次发送的恳求内容和向接口主动发送恳求是结构主动化测验脚本的核心,咱们完成这一进程主要是运用python 的requests库,下面详细做一下详细介绍。
01
发送简略的http post恳求
发送恳求前,咱们需求明确恳求的body,咱们的body为json,详细内容如下:
咱们能够把这个作为模板保存为text.json文件作为模板,这样能够直接读取为后面结构恳求体做预备。这一步咱们能够这样处理,这儿借助了yaml包,能够把json转化为字典,也能够运用python自带的json,作用一样。
获取到了恳求体模板后,咱们得到了变量request_body,这是一个字典类型的数据,咱们就能够对其进行参数化,以此结构咱们需求的恳求体了,例如咱们要对每次恳求的恳求id、用户名、以及text的内容做修正,能够这样操作,左边是需求修正的字段,右边是咱们需求的变量。
结构好要发送的数据,就能够预备发送恳求了,在发送恳求之前咱们还有一点作业要做,那便是设置恳求接口的一些参数和一些恳求头的定制,这儿咱们简略举例如下:
咱们定制了恳求参数和恳求头,就能够发送类似如下URL的恳求:
咱们再把之前结构好的body加上,再用requests库的post办法发送恳求,这儿用到了办法中的data参数,它接纳的是一个json,因此在发送之前对之前的字典变量还需做下转化再发送,这儿用python自带的json库,运用其间的dumps办法即可将字典转化为json:
至此,一个根本的http post恳求就发送完成了,留意到,咱们有一个名为 r 的 Response 目标。咱们能够从这个目标中获取一切咱们想要的信息。
02
愈加杂乱的恳求
前面咱们介绍了最简略的http post恳求,在此基础上,咱们有时还需求一些愈加杂乱的恳求,比方带一个文件,https恳求等,下面简略讲解一下怎样完成:
比方咱们想要发送一个带有格局为pcm的音频文件到接口中,而且接口是https的
留意到,发送https恳求需求做ssl认证,在办法中运用verify参数,这个参数默认值是True,一般不需求验证的话,需求将这个置为False。还有一个需求留意的当地是,咱们设置了一个timeout,防止恳求进程超时,导致程序无响应。
对恳求回来数据进行关键数据抓取
在发送恳求的进程里咱们有一个名为 r 的 Response 目标。咱们能够从这个目标中获取一切咱们想要的信息。
获取内容有如下几种办法,咱们能够依据自己的需求来运用:
得到的一般为json格局的文本:
咱们能够对json进行转化,运用json.loads办法,将一个json目标转化为python的字典,这样便利获取其间咱们想要的一些字段,这一步很简略,就不做详细介绍了。
怎样执行case和存储测验成果
首先咱们看一下咱们的case,咱们的case是运用Excel进行编写的,详细如下:
怎样读取Excel,获取其间的case呢?咱们运用了python中的pandas库。这个库很强壮,有许多处理数据的办法,咱们在这只运用其间读取excel的办法,详细代码如下:
这样咱们就将表格数据转化了一个list,每个list中是一个字典格局,也便是咱们的case,详细格局如下:
这样做的目的是咱们能够将表头和每个case做一个映射,构成一个字典,这样能够愈加灵活操作case以及做数据比照。
有了case list,加上之前咱们发送恳求和获取成果的进程就能够进行批量接口测验了,这儿运用一个for循环就能够批量跑起来了:
咱们将每次回来的成果,按照case的格局拼接成一个字典,便是咱们的成果数据,将每个成果字典再存储到一个列表中,就得到了整个的成果字典列表,咱们将它命名为case_result_list,这时,咱们再次运用pandas库,能够把这个列表转化为dataframe格局:
之后咱们将dataframe保存为excel文件:
至此,咱们现已完成了从获取case到发恳求获取成果,保存成果的悉数流程。
对成果数据进行标识处理
经过以上的操作,咱们现已完成了批量发恳求,获取成果的进程,如果咱们需求对成果单元格做一些处理,比方标红加粗等操作,使测验成果中的错误信息愈加显着,需求怎样操作呢?这儿咱们运用了python中的openpyxl库。这个库也是能够对Excel表格进行读写操作,而且能够插入一些公式和款式。咱们在这儿运用的是款式操作,咱们依据单元格中的数据对成果进行标红加粗操作:
最终得到的测验成果如下,经过运用openpyxl,咱们还能够在成果中追加行,添加一些测验成果的计算信息,如case数、error数,错误率正确率等。
以上便是一次完整的接口主动化测验脚本建立,完成主动恳求、获取成果、数据比照分析,导出成果到Excel等功用,每一个进程都比较简略,能够快速建立出满足需求的主动化测验脚本,方面快速验证服务端接口。
其间运用的requests库、pandas库是在python常用的库,功用很强壮,后续大家能够参考其官方文档进行深化了解。
参考文献
Requests官方文档:
2.python-requests.org/zh_CN/lates…
Pandas官方文档:
pandas.pydata.org/pandas-docs…
Openpyxl官方文档:
openpyxl.readthedocs.io/en/stable/