随笔备忘记录-UI自动化测试-自动化元素定位及操作执行

随便写点东西,有的是网上借鉴,有的是自己体会,总之都是根据自己的需求进行优化的一些东西,随笔备忘录
这个框架的思路是把元素与操作分开,页面元素与操作改变时,只需要修改定位的元素与对应的操作;操作流程修改时,只需要修改测试流程。
先在项目下pageobject文件夹下放所有要测试的页面类,用来写关于测试页面的元素定位和操作。在项目下testsuites文件夹下放所有页面对应的测试类,在下面新建.py文件,用来编写测试页面的测试代码
在这里插入图片描述
wms_all_methods.py中记录所有wms页面的元素以及对应的操作
登录名和密码取自配置文件,如果有变动,直接修改配置文件就可以;
随机生成的项目名称需要写入配置文件,之后的操作需要调用此名称
进行元素定位,id定位这里就不说了,其他的定位方法,个人还是比较推荐css

# -*- encoding: utf-8 -*-

import random
import functools
from framework.Base_Page import BasePage
class WmsAllmethods(BasePage):
    n = functools.reduce(lambda x, y: 10 * x + y, [random.randint(1, 9) for x in range(18)])
    t = functools.reduce(lambda x, y: 10 * x + y, [random.randint(1, 9) for y in range(5)])
    accountName = ['id','accountName']#输入用户名
    passWord = ['id','passWord']#密码
    submit = ['css','button[type="submit"]']#登录
    tongyi = ['css', 'button[class="ant-btn ant-btn-primary"]']  # 同意
    product = ['id', 'productSeries']  # 产品系列
    xmgl = ['xpath','//*[@id="root"]/div/section/section/aside/div[1]/ul/li[2]/div']#项目管理
    projectName = ['id','projectName']#项目名称输入框
    trustManager = ['id','trustManager']#项目经理
    operationManager = ['id','operationManager']#运营经理
    submission = ['css','button[type="submit"]']#提交按钮

    def click_submission(self):#点击提交
        self.click(self.submission)
        self.my_sleep(2)

    def click_operationManager(self):#点击运营经理
        self.click(self.operationManager)

    def click_trustManager(self):#点击项目经理
        self.click(self.trustManager)

    def type_projectName(self,va):#项目名称输入框
        value = str(self.t) + va
        self.type(self.projectName,value)
        self.config_write('ment', 'ject', value)

    def click_xmgl(self):#点击项目管理
        self.click(self.xmgl)
        self.my_sleep(2)

    def click_product(self):#点击产品系列
        self.click(self.product)
        
    def click_tongyi(self):#点击同意
        self.click(self.tongyi)
        self.my_sleep(2)

    def click_submit(self):
        self.click(self.submit)

    def type_passWord(self,va):
        password = self.config_get(va,'password')
        self.type(self.passWord,password)

    def type_accountName(self,va):
        name = self.config_get(va, 'name')
        self.type(self.accountName,name)

    def my_quit(self):
        self.my_quite()

testsuites文件夹下放所有页面对应的测试类,在下面新建.py文件
在这里插入图片描述
这里可以根据需求设计案例了
例(1):

# -*- encoding: utf-8 -*-

import unittest
from framework.Base_Page import BasePage
from pageobject.wms_all_methods import WmsAllmethods
class test_wms_kyc_sh(unittest.TestCase):
    def setUp(self) -> None:
        bro = BasePage(self)
        self.driver = bro.open_browser('wms')
    def test_kyc_sh(self):
        '''审核'''
        dr = WmsAllmethods(self.driver)
        dr.type_accountName('cfzjl')
        dr.type_passWord('pw')
        dr.click_submit()
        dr.click_htgl()
        dr.click_shenh()
        dr.click_sh()
        dr.click_tongyi()
        dr.my_quit()


if __name__ == '__main__':
    unittest.main()

例(2):

# -*- encoding: utf-8 -*-

import unittest
from framework.Base_Page import BasePage
from pageobject.wms_all_methods import WmsAllmethods
from framework.keyboard import keybd_event
class test_wms_project_approval(unittest.TestCase):

    def setUp(self) -> None:
        bro = BasePage(self)
        self.driver = bro.open_browser('wms')
    def test_wms_project_approval(self):
        '''项目立项'''
        dr = WmsAllmethods(self.driver)
        dr.type_accountName('xtjl')
        dr.type_passWord('pw')
        dr.click_submit()
        dr.click_htgl()
        dr.click_xmgl()
        dr.click_xmlx()
        dr.click_edit()
        dr.type_projectName('自动化项目')
        dr.click_trustManager()
        keybd_event(40)
        keybd_event(13)
        dr.click_operationManager()
        keybd_event(13)
        dr.type_Profit(9)
        dr.click_submission()
        dr.my_quit()


if __name__ == '__main__':
    unittest.main()

这里只是两个流程的操作,自动化测试为了避免一些外部的影响,像登录名密码之类的尽量使用专用的固定的,有些操作需要输入验证码的,尽量也不要校验

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值