(整理记录)使用Python编写进行接口自动化测试

        今天主要是为了整理一下针对公司系统编写的接口自动化测试脚本,同时进行复习一下编写的思路流程。下图是整个系统的文件流程:

                

        最开始需要在系统中下载pytest

                在cmd中输入:pip install pytest

        然后需要在conf包中将所有的系统的配置罗列出来方便后面的调用               

#此文件用于存储所有的接口服务器信息(包括IP地址和端口号)、数据库服务器的信息等
[api_server] ;节点名称(用于接口服务器名字定义,可修改)
#服务器的IP地址
ip = XXX.XXX.XXX.XXX
#XX系统的端口号
port = XXXX

[db_server] ;数据库服务的各种信息
#数据库服务的IP地址(与上面的全景系统的接口地址可能会不一样,具体情况根据实际情况而定)
host = XXX.XXX.XXX.XXX
#调用数据库的名称(一般是存储数据的数据库)并命名为db
db = 数据库名称
#访问数据库的时候的账号
user = root
#访问数据库的时候的密码
passwd = root

        这样写好以后,后面需要访问服务器或者需要连接数据库的时候,都可以调用这个配置文件server.conf文件。

        对配置文件进行读取存放到common_jk目录下,命名为:conf.py,同时使用日志的原因是每个操作打印日志,可以清楚明白哪个地方存在错误,或者哪里没有读取成功。

        

import configparser,logging
"""
导入configparser模块和logging模块
configparser模块是使用配置文件生效
logging模块是使用日志模块
"""
logging.basicConfig(level = logging.DEBUG)
"""
将根记录器级别设置为指定的级别。默认生成的 root logger 的 level 是 logging.WARNING,低于该级别的就不输出了。
级别排序:CRITICAL > ERROR > WARNING > INFO > DEBUG。
(如果需要显示所有级别的内容,可将 level=logging.NOTSET或者选择最低级别lever=logging.DEBUG)
"""

class Conf: #定义配置类
def __init__(self):
"""功能:创建配置对象,读取配置文件"""
try:
file = '../conf(配置文件)/server(服务器IP,数据库信息等).conf'
self.__conf = configparser.ConfigParser()
self.__conf.read(file,encoding='utf-8')
if self.__conf.sections():
"""
sections表示读取出来的配置文件,此处是server.conf文件中的[]中所有的单词,存入列表中展示出来
此处可以使用print(self.__conf.sections())打印出来,以此检验是否正常读取文件
"""
logging.debug('读取配置文件成功')
else:
logging.error(f'读取配置文件失败,请检查文件名{file}是否正确')
except Exception as e:
logging.error(f'读取配置文件{file}出错:{e}')
exit()


def get_server_info(self):
"""
获得接口服务器信息,组装数据展示成http://IP+端口号
返回的值为:http://IP:端口号
"""
try:
which_server = 'api_server'
ip = self.__conf.get(which_server,'ip')
port = self.__conf.get(which_server,'port')
base_url = f'http://{ip}:{port}'
logging.debug(f'获取接口服务器信息{base_url}成功')
return base_url
except Exception as e:
logging.error(f'获得接口服务器{which_server}信息出错,{e}')
exit()

        然后就是编写测试用例,将写好的测试用例放到data下面,作为后面执行自动化的时候调用所有的测试用例。如下图:(以登录接口测试用例为例)

      

                (PS:测试用例编写的方法后面会进行一个归纳整理)

        当编写完测试用例以后,就需要对测试用例进行读取的函数:

        

        读取测试用例以后,就是需要对接口进行访问:

                

       然后进行访问以后,后端会给一个返回值,这个时候就需要比对预期结果,然后生成测试报告

        以上就是接口测试流程的函数,接下来就是对这些函数进行调用即可。

import pytest
from common_jk.case import read_cases,send_request,cheak
from common_jk.captchaImage import uuid_number

uuid = uuid_number()



cases = read_cases('Login.xlsx',['用例编号','用例标题','接口路径','请求方法','请求类型','参数','预期结果'],['参数','预期结果'])
header = {

}
@pytest.mark.parametrize('case_info,url,method,send_type,args,expect',cases) 
def test_Login(case_info,url,method,send_type,args,expect):
        args["uuid"] = uuid
        actual = send_request(url,method,send_type,args,header)
        passed,msg = cheak(case_info,actual,expect)
        assert passed,msg

最后一步就是打印接口自动化测试报告,同时运行代码,进行断言比对

 然后就可以运行最后一个的run.py文件,查看运行报告

以上就是完整的接口测试流程以及部分代码展示。

  • 20
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值