爆肝整理,接口自动化测试-数据驱动框架封装(实战)

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

接口自动化框架—数据驱动

在这里测试的输入和输出数据是从数据文件中读取(数据池,ODBC源,CSV文件,EXCEL文件,Json文件,Yaml文件,ADO对象等)并且通过捕获工具生成或者手工生成的代码脚本被载入到变量中。

在这个框架中,变量不仅被用来存放输入值还被用来存放输出的验证值。整个程序中,测试脚本来读取数值文件,记载测试状态和信息。

这类似于表驱动测试,在表驱动测试中,它的测试用例是包含在数据文件而不是在脚本中,对于数据而言,脚本仅仅是一个“驱动器”,或者是一个传送机构。

通俗化一点:就是把测试过程中用到的测试数据和代码进行分开编写,分开存放。

比如:测试token接口用到的数据appid-sercet以及期望结果都提前放入一个数据文件。

举例:
项目中的access_token是一个公共需求的测试数据,它生成一次有效期是7200秒,2个小时一般都能执行完所有的接口测试了。
实现一次性获取 token值,保存到文件中,后续使用文件中的 token值完成测试。

1、在项目根目录下新建conf文件夹,在下面新建config.ini文件

爆肝整理,接口自动化测试-数据驱动框架封装(实战)_第1张图片

2、在common的py文件夹下新建ini_file_utils.py文件
编写代码:

import os
import configparser


class IniFileUtils:  #和框架业务无关的底层代码==》公共底层代码

    def __init__(self,file_path):
        self.ini_file_path = file_path
        self.conf_obj = configparser.ConfigParser()
        self.conf_obj.read(self.ini_file_path, encoding='utf-8')

    def get_config_value(self,section, key):
        value = self.conf_obj.get(section, key)
        return value

    def set_config_value(self,section, key, value):
        self.conf_obj.set(section, key, value)
        config_file_obj = open(self.ini_file_path, 'w')
        self.conf_obj.write(config_file_obj)
        config_file_obj.flush()
        config_file_obj.close()

if __name__ == '__main__':
    current_path = os.path.dirname(__file__)
    config_file_path = os.path.join(current_path, '../conf/config.ini')
    ini_file = IniFileUtils(config_file_path)
    print(ini_file.get_config_value('default', 'HOSTS'))
    ini_file.set_config_value('default','TOKEN_VALUE', 'SSS9090')

执行查看结果:

爆肝整理,接口自动化测试-数据驱动框架封装(实战)_第2张图片

ini配置文件中的token_value的值

爆肝整理,接口自动化测试-数据驱动框架封装(实战)_第3张图片

3、重写local_config.py文件,封装读取ini文件中的值

爆肝整理,接口自动化测试-数据驱动框架封装(实战)_第4张图片

编写代码:

import os
from common.ini_file_utils import IniFileUtils


current_path = os.path.dirname(os.path.abspath(__file__))
config_file_path = os.path.join(current_path, '../conf/config.ini')


class LocalConfig():  # #和框架业务有关系的底层代码

    def __init__(self,file_path = config_file_path):
        self.ini_file_obj = IniFileUtils(file_path)
    @property
    def get_hosts(self):
        '''获取ini文件中的hosts值'''
        hosts_value = self.ini_file_obj.get_config_value('default', 'hosts')
        return hosts_value
    @property
    def get_token_value(self):
        '''获取ini文件中的token_value值'''
        token_value = self.ini_file_obj.get_config_value('default','token_value')
        return token_value

local_config = LocalConfig()

if __name__ == '__main__':
    print(local_config.get_hosts)
    print(local_config.get_token_value)

查看执行结果:

爆肝整理,接口自动化测试-数据驱动框架封装(实战)_第5张图片

4、修改common_function.py文件,把获取的token值放到ini文件中
编写代码:

import os
import jsonpath
from common.local_config import local_config
from common.common_api_info import CommonApiInfo
from common.ini_file_utils import IniFileUtils


current_path = os.path.dirname(os.path.abspath(__file__))
config_file_path = os.path.join(current_path, '../conf/config.ini')

def save_access_token_value_info_ini_file(session_obj,hosts):
    """获取access_token的值并写入到ini文件中"""
    response = CommonApiInfo(session_obj,hosts).get_access_token_api('client_credential',
                                                          'wxf14419077f707856',
                                                          '92a113bd4b5ffdc72144740dc7123c99')
    # 获取响应json中的access_token的值
    token_value = jsonpath.jsonpath(response.json(), "$.access_token")[0]
    # 把获取到的access_token值写入到ini文件中
    IniFileUtils(config_file_path).set_config_value('default', 'token_value', token_value)
    # return token_value

if __name__ == '__main__':
    import requests
    save_access_token_value_info_ini_file(requests.session(), local_config.get_hosts)

执行后查看ini文件中的token_value的值:

已写入最新的token值

爆肝整理,接口自动化测试-数据驱动框架封装(实战)_第6张图片

5、修改run_api_tests.py文件,先把 token值写入ini文件中

爆肝整理,接口自动化测试-数据驱动框架封装(实战)_第7张图片

6、修改用例层的代码和获取token的py文件
用例层的代码脚本修改前VS修改后

爆肝整理,接口自动化测试-数据驱动框架封装(实战)_第8张图片

修改后

爆肝整理,接口自动化测试-数据驱动框架封装(实战)_第9张图片

获取token的py文件:

爆肝整理,接口自动化测试-数据驱动框架封装(实战)_第10张图片

7、执行run_api_tests.py文件,查看执行结果;

爆肝整理,接口自动化测试-数据驱动框架封装(实战)_第11张图片

查看报告

爆肝整理,接口自动化测试-数据驱动框架封装(实战)_第12张图片

Run_api_tests.py中生成了token值给ini配置文件,然后测试获取 token接口时,又调用生成了token值,为了防止后面生成值覆盖前面的值而导致ini配置文件失效,所以测试获取token接口要换不同的账号(appid和secret)

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

爆肝整理,接口自动化测试-数据驱动框架封装(实战)_第13张图片

二、接口自动化项目实战

爆肝整理,接口自动化测试-数据驱动框架封装(实战)_第14张图片

三、Web自动化项目实战

爆肝整理,接口自动化测试-数据驱动框架封装(实战)_第15张图片

四、App自动化项目实战

爆肝整理,接口自动化测试-数据驱动框架封装(实战)_第16张图片

五、一线大厂简历

爆肝整理,接口自动化测试-数据驱动框架封装(实战)_第17张图片

六、测试开发DevOps体系

爆肝整理,接口自动化测试-数据驱动框架封装(实战)_第18张图片

七、常用自动化测试工具

爆肝整理,接口自动化测试-数据驱动框架封装(实战)_第19张图片

八、JMeter性能测试

爆肝整理,接口自动化测试-数据驱动框架封装(实战)_第20张图片

九、总结(尾部小惊喜)

奋斗是生命的底色,坚持是成功的密码;追求卓越,砥砺前行,用汗水谱写辉煌乐章。相信自己的潜力与才华,不断超越自我,创造出属于自己的壮丽人生画卷!

积极拥抱挑战,勇敢闯荡人生舞台;心怀梦想,坚定追逐辉煌成功。不停歇,不止步,砥砺前行,放飞激情;相信自己的力量,奋发拼搏,书写绚丽绝伦的人生篇章!

信心点亮前行之路,汗水浇灌辉煌花朵;努力奋斗超越极限,梦想舞动青春旋律。坚持热爱,追逐远方,创造属于自己的壮丽传奇。奋发进取,才华绽放,勇往直前,成就精彩人生!

你可能感兴趣的:(软件测试,自动化测试,接口自动化测试,软件测试,自动化测试,软件测试工程师,接口自动化测试,python自动化测试,接口自动化,接口测试)