整体规划
- 一般编写步骤
- 在
Elements > Elements.yaml
文件里定位元素,需确保元素唯一性 - 在
Pages
目录下对应的页面对象里,封装编写页面方法 - 在
Cases
目录下组织测试用例 - 在
test_parameters
目录下填入测试数据
- 在
- 运行
直接运行main.py
文件
以下是一个设备名称查询示例:
元素
input_device_name:
xpath: //input[@placeholder="请输入设备名称"]
btn_search:
xpath: //span[text()="搜索 "]
方法
def device_name_query(self, device_name: str):
"""
设备名称查询
@param device_name: 设备名称
@return
"""
input_device_name = self.driver.wait_element_clickable(self.locator("input_device_name"))
self.driver.clear(input_device_name)
self.driver.send_keys(input_device_name, device_name)
btn_search = self.driver.wait_element_clickable(self.locator("btn_search"))
self.driver.click(btn_search)
time.sleep(1)
用例
def test_01_device_name_query(self):
"""测试设备名称的查询功能"""
query_params = self.params['query_params']['device_names']
for param in query_params:
with self.steps():
self.PageBase.device_name_query(device_name=param)
with self.verify():
sql = "SELECT COUNT(*) AS count FROM iot_device_info WHERE device_name=%s AND " \
"`device_type` ='0000000671'"
result_count = self.PageBase.fetch_one(sql, (param,))
self.logger.warning(f"数据库查询结果 - 设备名称'{param}': {result_count}")
self.PageBase.check_query_result(result_count, param, "设备名称")
数据
"query_params": {
"device_names": [
"电梯",
"LIFT"
]
}