霍格沃兹测试开发
功能点 | 描述 | 案例 |
---|---|---|
项目管理 | 对于项目的分类,通常以业务线为维度 | 商城、飞书、企业微信 |
测试类型 | 手工测试、自动化测试 | pytest、JUnit、HttpRunner、Postman |
测试用例 | 测试用例的信息 | 标题、步骤、预期结果、实际结果 |
测试套件 | 用例的集合 | 通常是用例从不同维度组合,冒烟测试用例集,某业务线用例集 |
测试装置 | 用例执行前后的准备工作,处理工作 | 用例依赖环境的安装,比如 python requirements |
测试 Runner | 测试用例执行器调度器 | 执行环境的管理:性能测试环境、兼容性环境 |
测试报告 | 测试结果的体现 | allure 报告、手工报告 |
公司收益(提效):
市场收益:
参考知识 xUnit:https://en.wikipedia.org/wiki/XUnit
前后端的录播全部看完,并且完成前后端的实战练习
https://course.hogwarts.ceshiren.com/courses/进阶班/课程大纲Python/#-python
如果一家饭店,从服务员->厨师->收银都是一个人,会成什么样子?
各司其职(高内聚),轻松协作(低耦合),就是分层思想的目标。
# 创建用例表
class TestCase(db.Model):
# 表名
__tablename__ = "testcase"
# 用例ID 用例的唯 一标识
id = db.Column(Integer, primary_key=True)
# 用例的标题 或者文件名,限定 80个字符 ,不为空,并且唯一
uid = db.Column(String(80), nullable=False, unique=True)
# 备注
remark = db.Column(String(120))
class BuildDo(db.Model):
# 表名
__tablename__ = "build"
# 用例ID 用例的唯 一标识
id = db.Column(Integer, primary_key=True)
# 用例的标题 或者文件名,限定 80个字符 ,不为空,并且唯一
plan_id = db.Column(Integer)
report = db.Column(String(80))
create_time = Column(DateTime, nullable=True, default=datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
def as_dict(self):
return {"plan_id": self.plan_id, "report": self.report, "create_time": str(self.create_time)}
class PlanDo(db.Model):
# 表名
__tablename__ = "plan"
# 用例ID 用例的唯 一标识
id = db.Column(Integer, primary_key=True)
# 用例的标题 或者文件名,限定 80个字符 ,不为空,并且唯一
name = db.Column(String(80), nullable=False, unique=True)
testcases = relationship("TestCaseDo",
secondary=testcase_plan_rel,
backref="plans")
def as_dict(self):
return {"id": self.id, "name": self.name,
"testcase_info": " ".join([testcase.case_title for testcase in self.testcases]) }
# 中间表
testcase_plan_rel = db.Table(
'testcase_plan_rel',
Column('testcase_id', Integer,
ForeignKey('testcase.id'),
primary_key=True),
Column('plan_id', Integer,
ForeignKey('plan.id'),
primary_key=True)
)
# 测试计划表
class PlanDo(db.Model):
# 表名
__tablename__ = "plan"
# 用例ID 用例的唯 一标识
id = db.Column(Integer, primary_key=True)
# 用例的标题 或者文件名,限定 80个字符 ,不为空,并且唯一
name = db.Column(String(80), nullable=False, unique=True)
testcases = relationship("TestcaseDo",
secondary=testcase_plan_rel,
backref="plans")
def as_dict(self):
return {"id": self.id, "name": self.name,
"testcase_info": " ".join([testcase.uid for testcase in self.testcases]) }
# 用例表
class TestCaseDo(db.Model):
# 表名
__tablename__ = "testcase"
# 用例ID 用例的唯 一标识
id = db.Column(Integer, primary_key=True)
# 用例的标题 或者文件名,限定 80个字符 ,不为空,并且唯一
case_title = db.Column(String(80), nullable=False, unique=True)
# 备注
remark = db.Column(String(120))
# 用例的创建时间
# created_at = ""
def as_dict(self):
return {"id": self.id, "case_title": self.uid, "remark": self.remark}
实现Service逻辑,先忽略调度具体的实现部分