定位操作封装!百度登录测试、测试用例、测试套件

fengzhuang.py对元素定位、输入和点击等操作进行封装。
sign.py定义sign函数:打开百度网页,点击登录,输入用户名密码和电机登录等操作。
testcase_sign.py编辑测试用例
testsuit_sign.py 测试套件以及输出测试报告,HTMLTestRunner模块可单独下载,用于生成测试报告

文件夹:fz
文件名:fengzhuang.py
from selenium import webdriver
import time
class Commom(object):
    def __init__(self):
        self.driver=webdriver.Chrome()
        self.driver.implicitly_wait(100)
        self.driver.maximize_window()

    def open_url(self,url):
        self.driver.get(url)
        # self.driver.implicitly_wait(50)

    def locateelement(self,locate_type,value):
        # el=None
        if locate_type=='id':
            el=self.driver.find_element_by_id(value)

        elif locate_type=='name':
           el= self.driver.find_element_by_name(value)

        elif locate_type=='class':
            el=self.driver.find_element_by_class_name(value)

        elif locate_type=='tag':
            el=self.driver.find_element_by_tag_name(value)

        elif locate_type=='text':
            el=self.driver.find_element_by_link_text(value)

        elif locate_type=='partial':
            el=self.driver.find_element_by_partial_link_text(value)

        elif locate_type=='xpath':
            el=self.driver.find_element_by_xpath(value)

        elif locate_type=='css':
            el=self.driver.find_element_by_css_selector(value)

        if el is not None:
         return el

    def input_data(self,locate_type,value,data):
        el=self.locateelement(locate_type,value)
        el.send_keys(data)

    def get_text(self,locate_type,value):
        el=self.locateelement(locate_type,value)
        return el.text

    def click(self,locate_type,value):
        el=self.locateelement(locate_type,value)
        time.sleep(3)
        el.click()

    def close_driver(self):
        self.driver.quit()

    # def __del__(self):
    #     self.driver.quit()

if __name__ == '__main__':
    com = Commom()
    com.open_url('http://www.baidu.com')
    # com.locateelement('id','kw')
    com.input_data('id','kw','asd')
    com.click('id','su')

文件夹:test
文件名:sign.py
from fz.fengzhuang import Commom
from selenium import webdriver
import  time

class Sign(Commom):
    def sign(self,user,password):
        self.open_url('https://www.baidu.com')
        self.click('css','#u1 > a.s-top-login-btn.c-btn.c-btn-primary.c-btn-mini.lb')
        self.click('css','#TANGRAM__PSP_11__footerULoginBtn')
        self.input_data('id','TANGRAM__PSP_11__userName',user)
        self.input_data('id','TANGRAM__PSP_11__password',password)
        self.click('id','TANGRAM__PSP_11__submit')

if __name__ == '__main__':
    Sign().sign('17802595663','lyp19940622')

文件夹:test
文件名:testcase_sign.py
from sign import Sign
import unittest
import time

class Testcase(unittest.TestCase):
    def setUp(self):
        print('start')

    def tearDown(self):
        print('end')

    #正确用户名和密码
    def test_001(self):
        ss=Sign()
        ss.sign('17802595663', 'lyp19940622')
        # time.sleep(5)
        data=ss.get_text('xpath', '/html/body/div/div[2]/div[3]/a[2]/span[2]')
        self.assertEqual('飞蓬heart',data)

    #错误用户名和正确密码
    def test_002(self):
        ss = Sign()
        ss.sign('17802595662','lyp19940622')
        # time.sleep(5)
        data=ss.get_text('xpath','/html/body/div[4]/div[2]/div[2]/div/div/div/div/div/div[1]/form/p[2]/span/a')
        self.assertEqual('找回密码',data)

    #正确用户名和错误密码
    def test_003(self):
        ss=Sign()
        ss.sign('17802595663','lyp19940620')
        # time.sleep(5)
        data=ss.get_text('xpath','/html/body/div[4]/div[2]/div[2]/div/div/div/div/div/div[1]/form/p[2]/span/a')
        self.assertEqual('找回密码',data)

    #空用户名和空密码
    def test_004(self):
        ss=Sign()
        ss.sign('','')
        # time.sleep(5)
        data=ss.get_text('xpath','/html/body/div[4]/div[2]/div[2]/div/div/div/div/div/div[1]/form/p[2]/span')
        self.assertEqual('请您输入手机/邮箱/用户名',data)

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

文件夹:test
文件名:testsuit_sign.py
from testcase_sign import Testcase
import unittest
from HTMLTestRunner import HTMLTestRunner

class Testsuit(unittest.TestCase):
    def testsuit(self):
        mysuit=unittest.TestSuite()
        case_list=['test_001','test_002','test_003','test_004']
        for case in case_list:
            mysuit.addTest(Testcase(case))

        # unittest.TextTestRunner(verbosity=2).run(mysuit)
        with open('../signreport.html','wb')as f:
            HTMLTestRunner(
                stream=f,
                title='测试报告',
                description='百度登录测试',
                verbosity=2
             ).run(mysuit)

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值