2024年最新接口自动化测试框架搭建全部过程,2024年最新软件测试开发学习视频

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

apis:接口请求层(这里封装的方法一般都是和项目有关系,列如:发送post请求,发送get请求,登录接口,注册接口,支付接口,加入购物车接口)
        
        testcases:用例目录(用来存放项目中涉及到的用例,用例即包含单接口用例,也包含关联接口用例,管理目录时,也可以通过目录分层结构管理)
        
        conftest:这里存放的是fixture,只对文件的所在目录生效,如果只是单目录用例那么可以在根目录下创建,如果分为分层目录结构的用例,那么为了
                 
                 满足当前目录的用例,可以在该目录下创建一个conftest,用来存放fixture,fixture是pytest框架的根髓
        
        pytest.ini:是pytest的配置文件,可用来存放一些运行配置项,如:-v -s ;或者配置日志输出渠道;该文件的具体配置,可百度学习
        
    2、接口框架的重要思想=======》金字塔的配置
        
        ①report=data—》utils=apis=—》conftest—》pytest.ini—》testcases
        
        ②以上相当于金字塔结构,从左至右为从底部到顶部的过程
        
        ③金字塔精髓之处在于,(上部依赖底部,底部不依赖于上部),举一个列子,(testcases中的用例,需要调用apis目录中的接口请求方法,而apis不会去主动调用testcases),所以
        
            在工作中,我们如果修改了某一个文件,需要往上找,看看谁调用了这个文件,相对应的进行修改

##########################utils中的db.py的封装
import pymysql

#
# # 1. 连接数据库
# conn = pymysql.connect(
#     host='服务器地址',
#     port=3306,
#     user='用户名',
#     password='密码',
#     db='数据库名'
# )
# # 2. 建立游标
# cur = conn.cursor(pymysql.cursors.DictCursor)  # 没有s 有括号
#
# # 3. 执行sql
# # 3.1 执行查询
# cur.execute("SELECT * FROM cardInfo WHERE cardNumber='hzc_00011';")
# conn.commit()
# # 获取结果
# result = cur.fetchall()
# # result = cur.fetchone() # 取一条少一条
# # cur.fetchmany(3)
# print(result)
#
# # 3.2 执行修改
# # cur.execute("DELETE FROM cardInfo WHERE cardNumber='hzc_00011';")
# # conn.commit()
#
# # 4. 关闭
# cur.close()
# conn.close()


class DB(object):
    def __init__(self):
        self.conn = pymysql.connect(
            host='服务器地址',
            port=3306,
            user='用户名',
            password='密码',
            db='数据库名',
            autocommit=True
        )
        self.cur = self.conn.cursor(pymysql.cursors.DictCursor)    #添加此配置项,默认commit了,即建立游标

    def do_sql(self, sql):
        print('执行sql', sql)
        self.cur.execute(sql)    #执行sql语句
        # self.conn.commit()    
        return self.cur.fetchall()    #返回查询到的所有结果


class FuelCardDB(DB):    #继承DB
    """执行具体的sql语句"""
    def del_card(self, card_number):
        """执行删除语句"""
        self.do_sql(f"DELETE FROM cardInfo WHERE cardNumber='{card_number}'")

    def check_card(self, card_number):
        """执行查询语句"""
        result = self.do_sql(f"SELECT * FROM cardInfo WHERE cardNumber='{card_number}';")
        if result:
            return True
        return False

    def add_card(self, card_number):
        """执行添加语句"""
        result = self.check_card(card_number)
        if not result:
            self.do_sql(f"INSERT INTO cardInfo (cardNumber) VALUES ('{card_number}');")

#######################api文件的封装

思想:该文件可以将不同的请求方法,不同的请求地址接口,封装成一个类,然后在用例层用到了哪一个就去调取哪一个
以下实列是添加加油卡项目

import requests

DATA_SOURCE_ID = "bHRz"


class Api(object):
    def __init__(self, base_url):
        self.url = base_url + '/gasStation/process'
        self.session = requests.session()


    def add_fuelcard(self, card_number):
        json_data = {"dataSourceId": DATA_SOURCE_ID, "methodId": "00A", "CardInfo": {"cardNumber": card_number}}
        res = self.session.post(self.url, json=json_data)
        print(res.text)
        return res


    def bind_card(self, user_name, id_type, id_number, card_number):
        json_data = {
            "dataSourceId": DATA_SOURCE_ID,
            "methodId": "01A",
            "CardUser": {
                "userName": user_name,
                "idType": id_type,
                "idNumber": id_number
            },
            "CardInfo": {
                "cardNumber": card_number
            }
        }

        res = self.session.post(self.url, json=json_data)
        print(res.text)
        return res


    def query_card(self, user_id, card_number):


![img](https://img-blog.csdnimg.cn/img_convert/999bc7677ad8a8ad231e4230991c690b.png)
![img](https://img-blog.csdnimg.cn/img_convert/dec034dbde9a1823dabeeaca72307246.png)
![img](https://img-blog.csdnimg.cn/img_convert/0e84dc387210656a8c1023c613c2756b.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**



**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值