# 交易类
class Trade:
# 默认构造函数
def __init__(self,date, brand,model,num,costprice,sellingprice,remark):
self.date=date
self.brand=brand
self.model=model
self.num=num
self.costprice=costprice
self.sellingprice=sellingprice
self.remark=remark
# 打印函数
def printTrade(self):
print("日期:%s , 品牌:%s, 型号:%s, 数量:%s, 成本价:%.2f, 销售价:%.2f, 备注:%s"
% (self.date,self.brand,self.model,self.num,self.costprice,self.sellingprice,self.remark))
# 仓库类,存储交易信息
class StoreHouse:
max_size=100
# 构造函数
def __init__(self):
self.trades=[None]*StoreHouse.max_size
self.pos=-1
# 入库函数
def intoStoreHouse(self,trade):
# 如果仓库满了报错
if len(self.trades)-1 == StoreHouse.max_size:
return "storehouse is full"
self.pos+=1
self.trades[self.pos]=trade
# 打印函数
def printStoreHouse(self):
for i in range(self.pos+1):
self.trades[i].printTrade()
# 管理类,把库存信息成本和总收入及利润计算出来
class Manager:
# 构造函数
def __init__(self):
self.cost=0
self.income=0
self.profit=0
# 入口设为仓库类
def getCostAndIncome(self,storeHouse):
for i in range(storeHouse.pos+1):
self.cost+=(storeHouse.trades[i].num)*(storeHouse.trades[i].costprice)
self.income+=(storeHouse.trades[i].num)*(storeHouse.trades[i].sellingprice)
self.profit=self.income-self.cost
# 打印显示
def printManger(self):
print("总成本:%.2f 元, 总收入:%.2f 元, 净利润:%.2f 元"
% (self.cost,self.income,self.profit))
# 测试
if __name__ == "__main__":
storeHouse=StoreHouse()
# 增加交易
storeHouse.intoStoreHouse(Trade("2020-1-1", "苹果", "iPhone11", 3, 4500.00, 5700.00, "新品"))
storeHouse.intoStoreHouse(Trade("2020-2-2", "华为", "Mate30", 2, 4000.00, 5300.00, "新品"))
storeHouse.intoStoreHouse(Trade("2020-3-3", "三星", "S20", 4, 5200.00, 6200.00, "新品"))
# 打印交易
storeHouse.printStoreHouse()
manager=Manager()
manager.getCostAndIncome()
## BDD开发原理
### 1. 定义功能:
BDD是一种测试框架,其原理是使用描述性文件定义其性能,使用自然语言来描绘功能及其行为。
### 2. 编写BDD测试脚本:
BDD的例子:
```
@login
Feature: Login
Scenario: 在登录页面输入有效用户名和密码,可登录成功
Given 用户访问登录页
When 用户输入有效的用户名和密码
Then 登录成功
```
## Allure Report
### 1. 安装
为了使用Allure,首先需要在工程中安装Allure。
### 2. 生成报表
在运行完`BDD`脚本之后,生成`Allure`报表:
```
pytest --alluredir reports
```
### 3. 渲染报表
最后,使用Allure命令渲染报表:
```
allure serve reports
```