首页 > 其他分享 >自动化用例封装

自动化用例封装

时间:2024-08-15 09:54:56浏览次数:12  
标签:封装 self element 用例 sleep dx 自动化 id find

一、用例设计编写

案例链接:
http://cms.duoceshi.cn/manage/login.do

1、按照用例场景设计

(1)登录场景(输入账号--输入密码--点击登录)

from  selenium  import  webdriver
from  time import  *
dx=webdriver.Chrome() #创建webdriver的对象
dx.get("http://cms.duoceshi.cn/manage/login.do") #打开浏览器
dx.maximize_window() #窗口最大化
dx.find_element_by_id("userAccount").send_keys("admin") #输入账号
sleep(2)
dx.find_element_by_id("loginPwd").send_keys("123456") #输入密码
sleep(2)
dx.find_element_by_id("loginBtn").click() #点击登录

(2)登录--退出(输入账号--输入密码--点击登录--点击退出按钮)

from  selenium  import  webdriver
from  time import  *
dx=webdriver.Chrome() #创建webdriver的对象
dx.get("http://cms.duoceshi.cn/manage/login.do") #打开浏览器
dx.maximize_window() #窗口最大化
dx.find_element_by_id("userAccount").send_keys("admin") #输入账号
sleep(2)
dx.find_element_by_id("loginPwd").send_keys("123456") #输入密码
sleep(2)
dx.find_element_by_id("loginBtn").click() #点击登录
sleep(2)
dx.find_element_by_xpath("/html/body/header/span[2]/a").click()

(3)用户管理用例(登录用户中心用户管理)

from  selenium  import  webdriver
from  time import  *
dx=webdriver.Chrome() #创建webdriver的对象
dx.get("http://cms.duoceshi.cn/manage/login.do") #打开浏览器
dx.maximize_window() #窗口最大化
dx.find_element_by_id("userAccount").send_keys("admin") #输入账号
sleep(2)
dx.find_element_by_id("loginPwd").send_keys("123456") #输入密码
sleep(2)
dx.find_element_by_id("loginBtn").click() #点击登录
sleep(2)
dx.find_element_by_xpath('//*[@id="menu-user"]/dt/i').click()
sleep(2)
dx.find_element_by_link_text("用户管理").click()

封装方法1:(将用例组合性调用)

from  selenium  import  webdriver
from  time import  *
class  Cms(object):
    def  __init__(self):
        self.dx=webdriver.Chrome()
        self.dx.get("http://cms.duoceshi.cn/manage/login.do")
        self.dx.maximize_window()
        sleep(2)
    def dl(self): #登录
        self.dx.find_element_by_id("userAccount").send_keys("admin") #输入账号
        sleep(2)
        self.dx.find_element_by_id("loginPwd").send_keys("123456") #输入密码
        sleep(2)
        self.dx.find_element_by_id("loginBtn").click() #点击登录
        sleep(3)
    def yhzx(self):
        self.dx.find_element_by_xpath('//*[@id="menu-user"]/dt/i').click() #用户中心
        sleep(2)
        self.dx.find_element_by_link_text("用户管理").click()
        sleep(3)
    def tc(self):
        self.dx.find_element_by_xpath("/html/body/header/span[2]/a").click()
if __name__ == '__main__':
    d=Cms()
    d.dl()
    # d.yhzx()
    d.tc()

封装方法2:(将用例单独执行)

from  selenium  import  webdriver
from  time import  *
class  Cms(object):
    def  __init__(self):
        self.dx=webdriver.Chrome()
        self.dx.get("http://cms.duoceshi.cn/manage/login.do")
        self.dx.maximize_window()
        sleep(2)
    def dl(self): #登录
        self.dx.find_element_by_id("userAccount").send_keys("admin") #输入账号
        sleep(2)
        self.dx.find_element_by_id("loginPwd").send_keys("123456") #输入密码
        sleep(2)
        self.dx.find_element_by_id("loginBtn").click() #点击登录
        sleep(3)
    def yhzx(self):
        self.dl()
        self.dx.find_element_by_xpath('//*[@id="menu-user"]/dt/i').click() #用户中心
        sleep(2)
        self.dx.find_element_by_link_text("用户管理").click()
        sleep(3)
    def tc(self):
        self.dl()
        self.dx.find_element_by_xpath("/html/body/header/span[2]/a").click()
if __name__ == '__main__':
    d=Cms()
    # d.dl()
    d.yhzx()
    # d.tc()

封装断言:

class  Cms(object):
    def  __init__(self):
        self.dx=webdriver.Chrome()
        self.dx.get("http://cms.duoceshi.cn/manage/login.do")
        self.dx.maximize_window()
        sleep(2)
    def dl(self): #登录
        self.dx.find_element_by_id("userAccount").send_keys("admin") #输入账号
        sleep(2)
        self.dx.find_element_by_id("loginPwd").send_keys("123456") #输入密码
        sleep(2)
        self.dx.find_element_by_id("loginBtn").click() #点击登录
        sleep(3)
    def yhzx(self):
        self.dl()
        self.dx.find_element_by_xpath('//*[@id="menu-user"]/dt/i').click() #用户中心
        sleep(2)
        self.dx.find_element_by_link_text("用户管理").click()
        sleep(3)
        t=self.dx.title
        assert  t=="过期更新"
        # if  t=="过期更新":
        #     print("ok")
        # else:
        #     print("no")
        print("------")
    def tc(self):
        self.dl()
        self.dx.find_element_by_xpath("/html/body/header/span[2]/a").click()
if __name__ == '__main__':
    d=Cms()
    # d.dl()
    d.yhzx()
    # d.tc()

标签:封装,self,element,用例,sleep,dx,自动化,id,find
From: https://www.cnblogs.com/fujintao/p/18360294

相关文章

  • 基于ansible playbook 自动化巡检生成xlsx报告
    IAAS自动化巡检生成xlsx报告项目结构:├──README.md├──filter_plugins生成json数据├──generate_xlsx.yml生成xlsx文件├──group_vars全局变量├──library数据处理及生成xlsx模块├──report最终xlsx报告保存├──roles巡检代码├──......
  • 一键自动化安装Docker
    一、Docker背景在我们安装Docker时候需要配置网络类型flannel+etcd,在多台服务器中脚本可以大大解决安装配置速度我们这里的Docker版本以docker-20.10.24为例;根据个人需求可更换二、一键自提:链接:https://pan.baidu.com/s/1BT5_r0WUX5nhRRNLvSafiw?pwd=j6k5提取码:j6k5三、脚......
  • Delphi编程艺术:注释技巧与文档自动化
    标题:Delphi编程艺术:注释技巧与文档自动化引言在Delphi开发中,注释和文档生成是编写可维护代码的基础。Delphi支持多种注释方式,同时提供了工具和方法来自动化文档的生成。本文将详细介绍Delphi中的注释类型,以及如何使用Delphi生成Word文档等自动化文档的技巧。Delphi中的注......
  • java+testng+selenium实现测试用例过程的录制,生成GIF。
    1.功能需求:支持灵活配置:因为本身已有用例执行失败的截图功能,所以需要支持针对单条测试用例的配置;支持testng框架xml多线程的执行;录制内容文件小、支持调整录制每帧间隔、每条用例录制最大时长(避免用例元素未定位到时长时间录制)。2.灵活配置实现创建注解,通过在测试用......
  • 【Python-办公自动化】1秒比较出2张表格之间的不同并标黄加粗
    欢迎来到"花花ShowPython",一名热爱编程和分享知识的技术博主。在这里,我将与您一同探索Python的奥秘,分享编程技巧、项目实践和学习心得。无论您是编程新手还是资深开发者,都能在这里找到有价值的信息和灵感。自我介绍:我热衷于将复杂的技术概念以简单易懂的方式呈现给大家,......
  • 【Python-办公自动化】几秒搞定几天的工作量之根据指定要求汇总求和排序成278张表格
    欢迎来到"花花ShowPython",一名热爱编程和分享知识的技术博主。在这里,我将与您一同探索Python的奥秘,分享编程技巧、项目实践和学习心得。无论您是编程新手还是资深开发者,都能在这里找到有价值的信息和灵感。自我介绍:我热衷于将复杂的技术概念以简单易懂的方式呈现给大家,......
  • 【Web自动化测试】UnitTest基础入门(1)
    目录:1.UnitTest核心要素2.断言3.参数化4.跳过5.基于UnitTest生成HTML测试报告---------------------------------------------------------------------------------------------------------------------------------1.UnitTest核心要素1.TestCase(测试用例)importun......
  • Java中封装的学习
    封装目录封装概念优点例子概念封装(encapsulation)是指对于某个对象,Java隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读取和修改的访问级别。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码和数据,必须通过严格......
  • 收放卷计算公式(FB封装)控制V90伺服
       收卷机是印刷、包装、纺织等行业中常见的设备,用于将卷状材料(如纸张、布料等)卷取或展开。在生产过程中,收卷机的控制系统起着至关重要的作用,可以实现对收卷机速度、张力、卷径等参数的精确控制,保证卷取或展开材料的质量和效率。现对其算法进行分析讲解。放卷计算(封装FB......
  • 何为封装
    7.1何为封装在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码和数据,必须通过严格的接口控制。封装最主要的功能......