楼下老大爷都能看懂的python3+selenium自动化测试框架( 二 )

 

楼下老大爷都能看懂的python3+selenium自动化测试框架

文章插图
 

楼下老大爷都能看懂的python3+selenium自动化测试框架

文章插图
 
?
 
例如,我们要新增登录功能测试用例:
 
首先,只需在testyaml目录下新增一个页面对象yaml文件,参考login.yaml格式编写即可 。这些文件是提供给封装页面对象类调用并执行定位识别操作 。
 
点我领取全套软件测试自动测试全栈资料教学视频
 
-id: test_login001.1detail : 手机号和密码为空登录screenshot : phone_pawd_emptydata:phone: ""password: ""check :- 手机号不能为空-id: test_login001.2detail : 手机号为空登录screenshot : phone_emptydata :phone: ""password : aacheck :- 手机号不能为空-id: test_login001.3detail : 密码为空登录screenshot : pawd_emptydata :phone : 13511112222password: ""check :- 密码不能为空-id: test_login001.4detail : 非法手机号登录screenshot : phone_errordata :phone : abcpassword: aacheck :- 手机号格式不对-id: test_login001.5detail : 手机号或密码不匹配screenshot : pawd_errordata :phone : 13511112222password: aacheck :- 账号密码错误-id: test_login001.6detail : 手机号和密码正确screenshot : phone_pawd_successdata :phone : 13865439800password: ********check :- yingojalogin_data.yamllogin_data.yaml 
楼下老大爷都能看懂的python3+selenium自动化测试框架

文章插图
 

楼下老大爷都能看懂的python3+selenium自动化测试框架

文章插图
 
?
 
其次,在testdata目录下新增一个login_data.yaml文件提供给登录接口传参的测试数据,编写格式参考login_data.yaml文件 。
 
#!/usr/bin/env python# _*_ coding:utf-8 _*___author__ = 'YinJia' import os,syssys.path.Append(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))from config import settingfrom selenium.webdriver.support.select import Selectfrom selenium.webdriver.common.action_chains import ActionChainsfrom selenium.webdriver.common.by import Byfrom public.page_obj.base import Pagefrom time import sleepfrom public.models.GetYaml import getyamltestData = https://www.isolves.com/it/cxkf/kj/2022-05-10/getyaml(setting.TEST_Element_YAML+ '/' + 'login.yaml')class login(Page):"""用户登录页面"""url = '/'dig_login_button_loc = (By.ID, testData.get_elementinfo(0)) def dig_login(self):"""首页登录:return:"""self.find_element(*self.dig_login_button_loc).click() sleep(1)# 定位器,通过元素属性定位元素对象# 手机号输入框login_phone_loc = (By.ID,testData.get_elementinfo(1)) # 密码输入框login_password_loc = (By.ID,testData.get_elementinfo(2)) # 取消自动登录keeplogin_button_loc = (By.XPATH,testData.get_elementinfo(3)) # 单击登录login_user_loc = (By.XPATH,testData.get_elementinfo(4)) # 退出登录login_exit_loc = (By.ID, testData.get_elementinfo(5)) # 选择退出login_exit_button_loc = (By.XPATH,testData.get_elementinfo(6))def login_phone(self,phone):"""登录手机号:param username::return:"""self.find_element(*self.login_phone_loc).send_keys(phone)def login_password(self,password):"""登录密码:param password::return:"""self.find_element(*self.login_password_loc).send_keys(password) def keeplogin(self):"""取消单选自动登录:return:"""self.find_element(*self.keeplogin_button_loc).click()def login_button(self):"""登录按钮:return:"""self.find_element(*self.login_user_loc).click()def login_exit(self):"""退出系统:return:"""above = self.find_element(*self.login_exit_loc)ActionChains(self.driver).move_to_element(above).perform() sleep(2)self.find_element(*self.login_exit_button_loc).click()def user_login(self,phone,password):"""登录入口:param username: 用户名:param password: 密码:return:"""self.open()self.dig_login()self.login_phone(phone)self.login_password(password)sleep(1)self.keeplogin()sleep(1)self.login_button()sleep(1)phone_pawd_error_hint_loc = (By.XPATH,testData.get_CheckElementinfo(0))user_login_success_loc = (By.ID,testData.get_CheckElementinfo(1))exit_login_success_loc = (By.ID,testData.get_CheckElementinfo(2))# 手机号或密码错误提示def phone_pawd_error_hint(self):return self.find_element(*self.phone_pawd_error_hint_loc).text# 登录成功用户名def user_login_success_hint(self):return self.find_element(*self.user_login_success_loc).text # 退出登录def exit_login_success_hint(self):return self.find_element(*self.exit_login_success_loc).textloginPage.py 
楼下老大爷都能看懂的python3+selenium自动化测试框架

文章插图
 

楼下老大爷都能看懂的python3+selenium自动化测试框架

文章插图
 
?
 
然后,在page_obj目录下新增一个loginPage.py文件,是用来封装登录页面对象类,执行登录测试流程操作 。


推荐阅读