# GreaterWMSTest **Repository Path**: oniubi/greater-wmstest ## Basic Information - **Project Name**: GreaterWMSTest - **Description**: 利用selenium库自动化添加测试数据 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2025-04-27 - **Last Updated**: 2025-04-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 测试平台简介 ​ 完全开源仓储管理软件,遵循Apache License 2.0协议,前后端分离,且完全开源,API使用restful协议,方便二次开发,前端代码使用quasar进行构建,后端使用Python Django3.1,利用API,可以支持多仓,波次发货,合并拣货,Milk-Run等业务模型。 仓库地址为:https://gitee.com/Singosgu/GreaterWMS.git 第一部分 测试脚本描述 一,init_warhouse.py---初始化仓库信息,包括仓库配置,尺寸信息,设置信息 二,init_goods.py--初始化商品信息,包括产地/规格/形状/品牌/颜色/类别/单位,以及添加一张商品信息表 三,init_baseinfomation.py初始化基本设置,包括公司信息,供应商/客户信息 四,asn.py,到货单处理-添加/编辑/删除商品: ​ add_asn()——添加到货通知单 ​ update_asn()——编辑到货单,改变商品编码,或者是改变商品数量 五,asn_status.py---修改发货单状态,从待到货至收货完成 ​ change_ans_status_confirm_arrival()——确认到货 ​ change_ans_status_confirm_unloading()——确认卸货 ​ change_ans_status_sort_unload()——确认分拣,分拣数量为0 ​ change_ans_staus_sorting_areas()——确定分拣数量 ​ change_asn_goods_shelves()——商品上架 ​ 如果单独运行此方法,请取消掉对第一行代码的注释,否则请打开 ​ 第二部分 测试框架说明 公共部分: ​ chrome_driver()方法:chrome驱动初始化,窗口最大化显示 自定义测试类的初始化方法: ​ __init__方法:获取待访问的url loc_wait方法: find_ele和find_eles方法:重写获取元素和元素组的方法 loc_close方法:用于关闭第一次打开页面时打开的注册界面 login方法:实现管理员登录的功能 第三部分 参数化说明 目前测试数据俱是由方法内传参或者是在方法中直接定义,这类方法不利于后期维护 目前初步想法是利用python的yaml库做一个参数化,把所有需要读取的参数都写在了一个yaml文件里 yaml文件定义举例: ``` url: 'http://127.0.0.1:8008/' ##待测试的url warehouse: ##仓库信息 whname: '四号位' cityname: '上海' address: '盛荣路' goods: ##商品信息 place: '东莞' spechficationname: '4*429' shapename: '根' brandname: '玉桥' colorname: '橙' categoryname: '市' unitname: '盒' baseinfo: ##基本信息 companyname: '华举' cityname: '重庆' address: '九龙坡4号' phone: '13311230356' director: '王海双' suplier: ##供应商信息 supliername: '启明星辰' cityname: '成都' address: '银海芯座' phone: '17521074465' director: '司总' level: '1' customer: ##客户信息 customername: '鄂美' cityname: '武汉' address: '江阳区江夏镇银色小区2号楼2202' phone: '151023405953' director: '哈毛' level: '1' ``` 读取yaml文件: ``` with open('data.yaml', 'r') as ymlfile: cfg = yaml.load(ymlfile, Loader=yaml.FullLoader) ``` 数据参数化处理: 创建GreaterWMSyaml.py ``` import yaml class ReadYaml(): def read_yaml(): with open('data.yaml', 'r') as ymlfile: cfg = yaml.load(ymlfile, Loader=yaml.FullLoader) url = cfg["url"] return cfg ``` ​ 在自定义类中引入yaml: ``` import GreaterWMSyaml #引入之前编写的python库 cfg = GreaterWMSyaml.ReadYaml.read_yaml() ``` ​ 修改需要引入参数的地方: ``` url=cfg['url'] #以url为例 cfg['baseinfo']['customer']['level'] #客户级别 =cfg['baseinfo']['customer']['director'] #客户负责人 ```