业界动态
你一定想不到,实现一个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/ , 查看更多   
最新文章
千亿巨头出手,收购!
【导读】分众传媒拟以83亿元收购新潮传媒100%股权中国基金报记者 李智历时4个月,分众传媒83亿元收购事项终于敲定。分众传媒83亿
主播说联播丨年中成绩单公布,这张“新名片”给力!
  今年上半年,我国服务进出口总额3.89万亿元,同比增长8%,其中,服务出口更是同比增长15%。“中国服务”成为继“中国制造”
广西通报:“亮证女”不是公安部门某领导,并非网传蓝某某
央视新闻消息,广西防城港“会车遇奔驰女司机亮证逼迫让路”事件引发关注。今天,广西互联网辟谣平台通报:网传“亮证女”为公安
三星 Galaxy S26 Ultra 手机背面渲染图曝光
IT之家 7 月 26 日消息,数码博主 @i冰宇宙 今天(7 月 26 日)发布微博,分享了一张网友设计的三星 Galaxy S26 Ultra 手机的渲
原创樊振东专访发布仅3天,令人担心的事情发生,凤凰网官方发声怒斥
四天前,樊振东泪眼朦胧地表示,自己因饭圈的骚扰几乎不敢出门,只有比赛时才能暂时逃避那份无形的压力。那份无助的情感简直让人
当中国娃在海外长大,这位妈妈发现了一个扎心的真相
培养一个真正自信的全球公民。内容合作 | 微信号:waitan2022邮箱:tbeducation@daznet.cn文丨叶心     编丨Amber 最近,很多
美国很少讨论一个问题:如果中国也推出稳定币会怎样?
编者按:8月1日,香港《稳定币条例》正式生效,这一全球首个针对法币的全面监管框架落地,将国际金融中心推向数字资产治理的前沿
女子每天“吸猫”减压,眼睛干涩发红就医!医生提醒:这个习惯很多人都有
极目新闻通讯员 彭祎每天下班回家,抱着猫咪“吸宠”解压,是35岁的张女士(化姓)最期待的时刻。然而,这份温馨的陪伴却悄悄埋
前华米高管创立、为宠物项圈加上AI,星联未来获数千万新融资
瑞财经 吴文婷 近日,宠物智能硬件公司星联未来(SATELLAI)宣布完成Pre‑A轮融资,本轮金额数千万人民币,由零一创投(01VC)领
Z Waves|美国风投押注99后中国UP主,她要用AI重做“B站”,只因Midjourney撑不起二次元的精神家园
当所有人都在用AI提升效率,她却想用AI留住情感。在内容创作被技术高度重构的今天,平台更像工厂,模型更像流水线。AI可以生成几