* 项目目标
对百度登录页面(https://passport.baidu.com/v2/?login)进行登录测试
* 功能实现
- 自动运行用例
- 自动生成测试报告
- 自动断言与测试截图
- 自动将最新测试报告发送到指定邮箱
- PageObject + Unittest + 数据驱动
* 工程目录
- base:基础共享包,通用定位元素方式封装
- config:配置文件、配置信息存放的地方
- util:存放第三方模块,发送邮件、读取报告等数据操作
- page_obj:实现登录时,目标元素定位、自动发送信息等
- business:执行page_obj包中相关py文件,逻辑操作等
- case:内置程序main文件,真正case用例
- report:测试报告 + 测试error截图
* 各模块实现
1、config模块
1)配置文件:LocalElement.ini
[LoginElement] user_name=id>TANGRAM__PSP_3__userName password=id>TANGRAM__PSP_3__password login_error=id>TANGRAM__PSP_3__error login_submit=id>TANGRAM__PSP_3__submit login_loginbtn=id>TANGRAM__PSP_3__footerULoginBtn
2)配置信息:setting.py
import os base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # 项目首路径 # report_path = os.path.join(base_dir,'report','first_case.html') # 测试报告路径 config_ini = os.path.join(base_dir,'config','localElement.ini') # localElement.ini 配置文件路径 report_path = os.path.join(base_dir,'report') # report 配置文件路径
2、util模块
1)read_ini.py:读取配置文件内容
from config.setting import config_ini import configparser class Read_Ini(object): """读取配置文件信息""" def __init__(self,node = None): if node: self.node = node else: self.node = 'LoginElement' # 配置文件中的某个节点 self.cf = self.load_ini() def load_ini(self): # 加载文件 cf = configparser.ConfigParser() # 使用 configparser模块读取配置文件信息 cf.read(config_ini) # 配置文件所在路径 return cf def get_value(self,key): # 获取配置文件中key的value值 data = self.cf.get(self.node,key) return data # if __name__ == '__main__': # read_init = Read_Ini() # print(read_init.get_value('user_name'))