找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
1. 键盘事件
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep
d=webdriver.Chrome()
d.get('http://192.168.0.149/bbs/forum.php')
d.maximize_window()
sleep(2)
d.find_element_by_id('kw').send_keys('武汉多测师师师')
sleep(2)
d.find_element_by_id('kw').send_keys(Keys.BACKSPACE*2)
sleep(2)
d.find_element_by_id('kw').send_keys(Keys.CONTROL,'a')
sleep(1)
d.find_element_by_id('kw').send_keys(Keys.CONTROL,'c')
sleep(1)
d.find_element_by_id('kw').send_keys(Keys.CONTROL,'v'*2)
sleep(1)
d.find_element_by_id('kw').send_keys(Keys.LEFT)

2. 用例封装
import unittest

class dome(unittest.TestCase):

    def test_case_1(self):
        print('迪迦奥特曼')

    def test_case_2(self):
        print('泰罗奥特曼')

    def test_case_3(self):
        print('戴拿奥特曼')

    def test_case_4(self):
        print('艾斯奥特曼')

    def test_case_5(self):
        print('捷德奥特曼')

if __name__ == '__main__':
    suite=unittest.TestSuite()
    # suite.addTest(dome('test_case_3'))
    # suite.addTest(dome('test_case_4'))
tests=[dome('test_case_3'),dome('test_case_4')]
    suite.addTests(tests)
    runner=unittest.TextTestRunner()
    runner.run(suite)

3. unittest单元测试框架
    Python中内置的单元测试框架
    TestCase 数据测试基类,最基本的组成单元
        setUp   初始化测试用例,在每条测试用例方法执行前执行一次
        tearDown    还原测试场景,在每条测试用例方法执行后执行一次
        setUpClass  初始化测试用例类,在每个测试用例类执行前只执行一次
        tearDownClass   还原测试类的场景,在每个测试用例类执行后只执行一次
        用例顺序:setUpClass -> setUp -> testcase -> tearDown -> tearDownClass
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep
import unittest
class landing(unittest.TestCase):
    def setUp(self) -> None:
        self.d = webdriver.Chrome()
        self.d.maximize_window()
        self.d.get('http://192.168.0.149/bbs/forum.php')
        sleep(2)

    def tearDown(self) -> None:
        self.d.find_element_by_xpath('//*[@id="lsform"]/div/div/table/tbody/tr[2]/td[3]/button/em').click()
        sleep(2)
        self.d.quit()

    def test_case1(self):
        self.d.find_element_by_id('ls_username').send_keys('admin')
        sleep(1)
        self.d.find_element_by_id('ls_password').send_keys('123456')
        sleep(1)

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

    TestSuite 测试用例套件,收集测试用例
        addtest()   将单条用例添加到套件中
        addtests()  将多条用例一次性全部添加到套件中

    TestLoader 定义了用例名称规则,用例名称前缀必须是test
    TestTextRunner 提供了运行用例或者套件的函数
        run() 运行测试用例或测试套件
import unittest
from HTMLTestRunner import HTMLTestRunner
from time import strftime
t=strftime('%Y-%m-%d_%H:%M:%S')
tl=unittest.TestLoader()
suit=tl.discover('E:\wuhan2\day11_lianxi',pattern='test_*.py')
report='E:\wuhan2\day11_lianxi\\testreport{}.html'.format(t)
with open(report,'wb') as f:
    runner=HTMLTestRunner(stream=f,tester='chenyu')
    runner.run(suit)

    TestResult 收集测试结果
    main() 主函数:当使用主函数运行测试用例时,用例的执行顺序为ascii表顺序匹配
        0-9 A-Z a-z
    unittest 中内置的断言方法
        assertEqual(a, b, msg)  断言a == b,否则抛出定义的msg信息
        assertNotEqual(a, b, msg)   断言a != b,否则抛出定义的msg信息
        assertIn(a, b, msg)   断言a in b,否则抛出定义的msg信息
        assertNotIn(a, b, msg)   断言a not in b,否则抛出定义的msg信息
        assertFalse(exp, msg)   断言表达式exp结果为False,否则抛出定义的msg信息
        assertTrue(exp, msg)   断言表达式exp结果为True,否则抛出定义的msg信息
    unittest 自动化测试报告
        1. 自定义测试报告模板HTMLTestRunner模块

Pytest => unittest => robotframework
. 表示成功
F 表示用例断言失败
E 表示代码语法等报错

4. ddt数据驱动
    data driver test
    不是python内置模块  pip install ddt
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep
import unittest
from ddt import ddt,data,unpack
from day11_lianxi.lianxi1 import *

@ddt
class landing(unittest.TestCase):
    def setUp(self) -> None:
        self.d = webdriver.Chrome()
        self.d.maximize_window()
        self.d.get('http://192.168.248.128/bbs/forum.php')
        sleep(2)

    def tearDown(self) -> None:
        self.d.find_element_by_xpath('//*[@id="lsform"]/div/div/table/tbody/tr[2]/td[3]/button/em').click()
        sleep(2)
        self.d.quit()

    @data(*get_test_data('E:\wuhan2\day11_lianxi\\11111.xlsx',0))
    @unpack
    def test_case1(self,username,passward):
        self.d.find_element_by_id('ls_username').send_keys(username)
        sleep(1)
        self.d.find_element_by_id('ls_password').send_keys(passward)
        sleep(1)

if __name__ == '__main__':
    unittest.main()
分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册