业界动态
你一定想不到,实现一个Python+Selenium的自动化测试框架就这么简单(2)手机号定位「你一定想不到,实现一个Python+Selenium的自动化测试框架就这么简单(2)」
2025-01-29 16:55
  1. 使用Page Object模式将页面定位和业务操作分开,分离测试对象(元素对象)和测试脚本(用例脚本,一个页面建一个对象类,提高用例的可维护性
  2. 使用yaml管理页面控件元素数据和测试用例数据。例如元素ID等发生变化时,不需要去修改测试代码,只需要在对应的页面元素yaml文件中修改即可
  3. 分模块管理,互不影响,随时组装,即拿即用。

测试框架分层设计

img

把常见的操作和查找封装成基础类,不管是什么产品,可直接拿来复用

  • 业务层主要是封装对象页面类,一个页面建一个类,业务层页面继承基础层
  • 用例层针对产品页面功能进行构造模拟执行测试
  • 框架层提供基础组件,支撑整个流程执行及功能扩展,给用例层提供各页面的元素数据、用例测试数据,测试报告输出等

测试框架目录结构

img

如下思维导图目录结构介绍

img

编写用例方法

如果对软件测试、接口测试、自动化测试、面试经验交流。感兴趣可以关注我们爱码小士,公众号内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。

testinfo:

  • id: test_login001
    title: 登录测试
    info: 打开抽屉首页
    testcase:
  • element_info: login-link-a
    find_type: ID
    operate_type: click
    info: 打开登录对话框
  • element_info: mobile
    find_type: ID
    operate_type: send_keys
    info: 输入手机号
  • element_info: mbpwd
    find_type: ID
    operate_type: send_keys
    info: 输入密码
  • element_info: //input[@class=‘keeplogin’]
    find_type: XPATH
    operate_type: click
    info: 单击取消自动登录单选框
  • element_info: //span[text()=‘登录’]
    find_type: XPATH
    operate_type: click
    info: 单击登录按钮
  • element_info: userProNick
    find_type: ID
    operate_type: perform
    info: 鼠标悬停账户菜单
  • element_info: //a[@class=‘logout’]
    find_type: XPATH
    operate_type: click
    info: 选择退出
    check:
  • element_info: //div[@class=‘box-mobilelogin’]
    /div[1]/span
    find_type: XPATH
    info: 检查输入手机号或密码,登录异常提示
  • element_info: userProNick
    find_type: ID
    info: 成功登录
  • element_info: reg-link-a
    find_type: ID
    info: 检查退出登录是否成功
    login.yaml

例如,我们要新增登录功能测试用例

首先,只需在testyaml目录下新增一个页面对象yaml文件,参考login.yaml格式编写即可。这些文件是提供给封装页面对象类调用并执行定位识别操作。

id: test_login001.1
detail : 手机号和密码为空登录
screenshot : phone_pawd_empty
data:
phone: “”
password: “”
check :

  • 手机号不能为空

id: test_login001.2
detail : 手机号为空登录
screenshot : phone_empty
data:
phone: “”
password : aa
check :

  • 手机号不能为空

id: test_login001.3
detail : 密码为空登录
screenshot : pawd_empty
data:
phone : 13511112222
password: “”
check :

  • 密码不能为空

id: test_login001.4
detail : 非法手机号登录
screenshot : phone_error
data:
phone : abc
password: aa
check :

  • 手机号格式不对

id: test_login001.5
detail : 手机号或密码不匹配
screenshot : pawd_error
data:
phone : 13511112222
password: aa
check :

  • 账号密码错误

id: test_login001.6
detail : 手机号和密码正确
screenshot : phone_pawd_success
data:
phone : 13865439800
password: ********
check :

  • yingoja
    login_data.yaml

login_data.yaml

其次,在testdata目录下新增一个login_data.yaml文件提供给登录接口传参的测试数据,编写格式参考login_data.yaml文件。

#!/usr/bin/env python

author = ‘YinJia’
import os,sys
sys.path.append(os.path.dirname(os.path.dirname
(os.path.dirname(file))))
from config import setting
from selenium.webdriver.support.select import Select
from selenium.webdriver.common.action_chains
import ActionChains
from selenium.webdriver.common.by import By
from public.page_obj.base import Page
from time import sleep
from public.models.GetYaml import getyaml
testData = 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))

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数软件测试工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前

因此收集整理了一份《2024年软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试
img

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导,让我们一起学习成长

!**

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试
[外链图片转存中…(img-GWhwoqda-1712743346377)]

    以上就是本篇文章【你一定想不到,实现一个Python+Selenium的自动化测试框架就这么简单(2)手机号定位「你一定想不到,实现一个Python+Selenium的自动化测试框架就这么简单(2)」】的全部内容了,欢迎阅览 ! 文章地址:http://fabua.ksxb.net/news/8099.html 
     文章      相关文章      动态      同类文章      热门文章      栏目首页      网站地图      返回首页 海之东岸资讯移动站 http://fabua.ksxb.net/mobile/ , 查看更多   
最新文章
手机内存卡读不出来怎么办手机不读卡怎么回事「手机内存卡读不出来怎么办」
手机内存卡读不出来怎么办  如今很多人都会使用手机内存卡来扩展内存,可是很多时候都会出现内存卡无法读取的问题,那么手机内
华为(HUAWEI)Mate X5 折叠屏手机x5手机「华为(HUAWEI)Mate X5 折叠屏手机」
随着科技的不断发展,已经成为人们日常生活中不可或缺的一部分。而(HUAWEI)作为全球领先的通信技术公司,一直致力于为用户提供
探秘诺希(NOHON)手机电池:质量靠谱还是太一般?爱疯手机「探秘诺希(NOHON)手机电池:质量靠谱还是太一般?」
从小就痴迷电子产品的我,每次换手机都会对配套的电池十分关心。毕竟,一个好的电池不仅仅能够延长手机的使用时间,还能给我的电
免费更新|尚医智信THC系统6.2.1版本更新上线thc手机「免费更新|尚医智信THC系统6.2.1版本更新上线」
点击蓝字关注我们2月17日,尚医智信THC系统6.2.1版本更新上线,这是2022年升级的第2个版本,主要对THC One医院管理系统、THC Air
挤眉弄眼是梅杰综合征吗?梅杰综合症的症状手机综合症「挤眉弄眼是梅杰综合征吗?梅杰综合症的症状」
挤眉弄眼是梅杰综合征吗?梅杰综合症的症状 “我妈从一年前开始,眼皮总是不停地跳,后来就不由自主地眨眼,非常频繁,有时每分钟
荣耀90Pro密码忘记怎么办荣耀手机找回「荣耀90Pro密码忘记怎么办」
最近几年,荣耀都会推出新机型,其中这款手机的配置十分出色,深受用户们的喜爱。但是在使用过程中可能会遇到荣耀90Pro密码忘记
工业安全新高度:防爆手机在科技时代的应用与未来展望工业手机「工业安全新高度:防爆手机在科技时代的应用与未来展望」
在当今科技飞速发展的时代,工业领域对安全和高效通讯设备的需求愈加迫切。在这样的背景下,防爆手机应运而生,成为各行业提升工
传奇游戏加速器永久免费版手机游戏加速器「传奇游戏加速器永久免费版」
传奇游戏加速器永久免费版刀刀有激情,很多专属神器都能够玩的十分热血开心,游戏的厮杀超级热血,平时你还可以招募老战友一起组建
ivvi SK5怎么样?ivvi SK5手机全面详细评测图解ivvi是什么牌子的手机「ivvi SK5怎么样?ivvi SK5手机全面详细评测图解」
 在4月18日的发布会上,ivvi除了带来和超多维合作的首款裸眼3D新品ivvi K5之外,在当天的体验区还展出了多款新品,其中就包括这