测试需求介绍通常在我们的项目中,我们的接口测试需求一般都是构造不同的请求数据,然后向接口发送请求,获取到后接口返回,对返回的字段进行提取和验证,最后将结果存储在excel表中,方便参考。接口一般是http或者https请求,发送的结构一般是jsonbody或者json结合一些文件附件。请求返回结果为json格式。我们的测试用例可以保存在Excel或者数据库中,结果可以保存在数据库中或者直接存储。在Excel中,下面将具体拆解需求,逐步介绍实现过程。自定义请求体,发送请求构造每次发送的请求内容,自动发送请求到接口,是构建自动化测试脚本的核心。这一步我们主要使用python的requests库来实现,下面会详细介绍。1.发送一个简单的httppost请求在发送请求之前,我们需要指定请求的body。我们的身体是json。具体内容如下:我们可以把这个作为模板保存为一个text.json文件作为模板,后面可以直接读取为Prepreparetherequestbody。我们可以这样处理这一步。这里我们使用yaml包将json转成字典,或者使用python自带的json,效果是一样的。得到请求体模板后,我们得到变量request_body,它是一个字典类型的数据,我们可以将其参数化构造我们需要的请求体,比如我们要请求每个请求的请求id,用户名,和文本内容可以修改。你可以这样做。左边是需要修改的字段,右边是我们需要的变量。构造好要发送的数据后,我们就可以准备发送请求了。在发送请求之前,我们还有一点工作要做,就是设置请求接口的一些参数,自定义一些请求头。这里我们举一个简单的例子如下:我们自定义了Request参数和请求头,可以发送一个类似如下URL的请求:我们添加之前构造好的body,然后使用requests库的post方法发送请求。这里使用了方法中的data参数,它接收的是一个json,所以在发送前需要将之前的字典变量进行下转换后发送。这里,使用python自带的json库,使用dumps方法将字典转成json:至此,一个基本的httppost请求就发送完成了,注意我们有一个名为r的Response对象。我们可以从这个对象中得到我们想要的所有信息。2.更复杂的请求我们前面介绍了最简单的httppost请求。在此基础上,我们有时还需要一些更复杂的请求,比如带一个文件,HTTPS请求等。下面简单介绍一下如何实现:比如我们要发送一个格式为pcm的音频文件到接口,接口为https。注意发送https请求需要ssl认证,方法中使用了verify参数。此参数的默认值为True。一般如果不需要验证,需要设置为False。另外需要注意的是,我们设置了超时时间,防止请求过程超时导致程序无响应。抓取请求返回数据的关键数据。在发送请求的步骤中,我们有一个名为r的Response对象。我们可以从这个对象中得到我们想要的所有信息。获取内容有几种方式,我们可以根据自己的需要使用:获取的文本一般是json格式:我们可以转换json,使用json.loads方法将一个json对象转换成python字典,比如这样可以方便的获取一些我们想要的字段。这一步很简单,就不详细介绍了。如何执行案例和存储测试结果首先,让我们看一下我们的案例。我们的案例是用Excel写的,如下:1080×11239.8KB如何读取Excel并获取其中的案例?我们在python中使用了pandas库。这个库非常强大,有很多处理数据的方法。我们这里只使用读取excel的方法。具体代码如下:这样,我们将表格数据转换成列表,每个列表都是一个字典格式,即我们案例的具体格式如下:这样做的目的是我们可以映射表头与每个案例组成一个字典,方便我们更灵活地操作案例和进行数据比较。有了caselist,再加上前面发送请求和获取结果的步骤,我们就可以进行批量接口测试了。这里我们可以使用for循环来批量运行:我们将每次返回的结果按照case的格式进行拼接。字典是我们的结果数据。将每个结果字典存储在一个列表中,以获得整个结果字典列表。我们将其命名为case_result_list。这时候我们可以再次使用pandas库,把这个list转换成dataframe格式:之后,我们把dataframe保存为excel文件:至此,我们就完成了从获取case到发送请求到的整个过程获取结果并保存结果。对结果数据进行识别和处理经过以上操作,我们就完成了批量发送请求和获取结果的过程。如果我们需要对结果单元格做一些处理,比如红色和粗体操作,测试结果中的错误信息更明显,怎么办?这里我们使用了python中的openpyxl库。这个库还可以读写Excel表格,可以插入一些公式和样式。我们这里使用的是样式操作。我们根据单元格中的数据将结果加红加粗:最终测试结果如下。通过使用openpyxl,我们还可以给结果添加行,添加一些测试结果的统计信息,比如例数、错误数、错误率和正确率等。超过1080×22461.6KB是一个完成接口自动化测试脚本构建,实现自动请求、获取结果、数据对比分析、结果导出Excel等功能。每一步都比较简单,可以快速构建满足需求的自动化测试脚本,快速验证服务端接口。其中用到的requests库和pandas库都是python中常用的库,功能非常强大。深入了解可以参考他们的官方文档。
