自动化测试单元unitTest

自动化测试中的单元测试

测试单元简单编写

python语言

import unittest
from HTMLTestRunner import HTMLTestRunner
##定义测试类  继承unittest
class TestUnit(unittest.TestCase):
    ## 初始化方法 每个用例执行前都会执行一次
    def setUp(self):
        print("这个是setup方法---------")
    ## 测试的方法必须是   test开头
    def testcase01(self):
        print("这个是第一条用例")
    def testcase02(self):
        print("这个是第二条用例")
    ##收尾方法 每个用例执行后都会执行
    def tearDown(self):
        print("这个是tearDown方法----------")

if __name__ == '__main__':
    ## 这个是执行的方法
    ## unittest.main()
    ## 实例化测试套件 将用例加入在套件中
    testSuite = unittest.TestSuite()
    testSuite.addTest(TestUnit("testcase01"))
    testSuite.addTest(TestUnit("testcase02"))
    ## 用二进制的形式 打开当前目录下面的测试报告
    fp =open("./result.html","wb");
    ## 实例化htmlrunner类 传入对应的参数
    runner =  HTMLTestRunner(stream=fp,title="自动化测试文件报告",description="这是测试文件报告");
    ## 生成测试报告
    runner.run(testSuite)
    fp.close()





运行会生成测试报告

有时候报告会生成失败

在pyCharm 运行会失败

然后应该在这里选对

在这里插入图片描述

alt+shitft + f10
打开选择运行的单元

如果还不可以 在加上Fn

在自动化测试运用单元测试

可以将这个项目自动跑完并且自动生成测试报告

报告如下:

在这里插入图片描述

下面这是一个完整的

自动化测试单元 主要还是针对于禅道的

登录 添加产品

from selenium import webdriver
from time import sleep
import unittest
from HTMLTestRunner import HTMLTestRunner
from selenium.webdriver.support.select import Select


class TestZentao(unittest.TestCase):

    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.maximize_window()
        self.driver.get("http://127.0.0.1/zentao/user-login-L3plbnRhby8=.html")
        self.driver.find_element_by_id("account").send_keys("admin")
        self.driver.find_element_by_name("password").send_keys("1997fhx..")

        self.driver.find_element_by_id("submit").click()
    
    def testbianli(self):
        driver = self.driver
        driver.find_element_by_link_text("产品").click()
        driver.find_element_by_link_text("项目").click()
        driver.find_element_by_link_text("测试").click()
        driver.find_element_by_link_text("文档").click()
        driver.find_element_by_link_text("统计").click()
        driver.find_element_by_link_text("组织").click()
        driver.find_element_by_link_text("后台").click()
        print("遍历所有TAB成功!!!")
        driver.save_screenshot("./11.png")
    
    def testaddproduct(self):
        driver = self.driver
        driver.find_element_by_link_text("产品").click()
        driver.find_element_by_partial_link_text("添加产品").click()
        driver.find_element_by_name("name").send_keys("产品6")
        driver.find_element_by_name("code").send_keys("code006")

        ## 定位 select
        s1 = driver.find_element_by_id("PO")
        ##  display: none-----这个显示为隐式的
        ##   document.getElementById('PO').style.display='block'     将display显示为block  即可变成显示的元素
        ## 这个为js的代码
        js1 = "document.getElementById('PO').style.display='block'";
        ##  执行js脚本
        driver.execute_script(js1);
        Select(s1).select_by_value("PM1")
        ## 定位s2
        s2 = driver.find_element_by_id("QD")
        js2 = "document.getElementById('QD').style.display='block'";
        driver.execute_script(js2)
        Select(s2).select_by_value("QA1")
        ## 定位s3
        s3 = driver.find_element_by_id("RD")
        js3 = "document.getElementById('RD').style.display='block'";
        driver.execute_script(js3)
        Select(s3).select_by_value("PM2")
        ## 产品类型是显示的   不用js  直接用selected就可以
        s4 = driver.find_element_by_id("type")
        Select(s4).select_by_value("branch")
        ##  富文本框  内置的另一个页面  iframe    富文本编辑框
        ##   首先定位到  iframe
        iframe = driver.find_element_by_class_name("ke-edit-iframe")
        ##  将driver转换到  iframe页面上
        driver.switch_to_frame(iframe)
        ##  将这个富文本框里面填入数据
        driver.find_element_by_class_name("article-content").send_keys("富文本框填入数据")
        ##  在这个页面是填完数据之后 放回他原来的页面
        driver.switch_to_default_content()
        ##  保存 在页面的下面   他不会自动滑下去  需要手动将鼠标滑下去
        ##  需要拖下去   这个js表示拖到最下面
        js = "var q=document.documentElement.scrollTop=10000"
        driver.execute_script(js)
        driver.find_element_by_id("submit").click()
        ## 再次查看产品
        driver.find_element_by_xpath("//*[@id='pageNav']/div[1]/div/button").click()
        driver.find_element_by_partial_link_text("所有产品").click()
        ## 点进这个场产品
        driver.find_element_by_xpath("//*[@id='productTableList']/tr[1]/td[2]/a").click()
        driver.find_element_by_xpath("//*[@id='mainContent']/div[1]/div[2]/div/a[4]").click()
        ##  会出现弹出框 点击弹出框的  按钮                   将此页面转换为  弹出框的页面
        alter = driver.switch_to_alert()
        ##  点击确认按钮
        alter.accept();


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


if __name__ == '__main__':
    testsuit = unittest.TestSuite()
    testsuit.addTest(TestZentao("testbianli"))
    testsuit.addTest(TestZentao("testaddproduct"))

    # runner = unittest.TextTestRunner()
    # runner.run(testsuit)
    fp = open("./result.html",'wb')
    runner = HTMLTestRunner(stream=fp,title="禅道自动化测试报告",description="自动化测试报告")
    runner.run(testsuit)
    fp.close()
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值