软件测试职业技能大赛

  1. 简介
    1. 目的

【说明编写该报告的目的】

本报告为资产管理系统的自动化测试报告,其目的在于记录自动化测试的工程,总结和分析自动化测试的结果。

    1. 术语定义

自动化测试概念:自动化测试是把以___人工__驱动的测试行为转化为___机器__执行的一种过程。

自动化测试前提条件:___项目__变动不频繁、项目__周期___足够长、自动化测试脚本可重复使用。

自动化测试的流程:(1)制定测试计划、(2)分析测试需求、(3)设计测试用例、(4)搭建测试_测试环境___、(5)编写并执行__测试脚本___脚本(6)分析测试结果,记录bug(7)跟踪bug并进行回归测试

进行自动化测试的目的:随着国家计算机信息化的发展,软件都是需要快速迭代,像一些重复性的工作可以通过自动化来完成,从而提高工作的__稳定性___效率和准确性,达到__节约人工成本_快速迭代__的目的。

在测试过程中,为节省人力、时间或硬件资源,提高  测试效率  ,便引入了自动化测试的概念。

Selenium是一款针对  web程序  的功能自动化测试工具,主要用于回归测试、兼容性测试、大数据量测试。

  1. 自动化测试脚本执行结果

【将编写的自动化测试脚本粘贴到对应题目中,并说明是否执行成功(只需填写成功/失败)】

    1. 第一题脚本

脚本:

from time import sleep

from selenium import webdriver

from selenium.webdriver.common.by import By

wd = webdriver.Chrome()

wd.get('http://192.168.46.5:28945/login?redirect=%2Fsystem%2Fuser')

wd.maximize_window()

wd.implicitly_wait(5)

wd.find_element(By.NAME, 'username').send_keys('XTGLY')

wd.find_element(By.NAME, 'password').send_keys('123456')

wd.find_element(By.CLASS_NAME, 'el-button').click()

wd.find_element(By.PARTIAL_LINK_TEXT, '供应商信息').click()

sleep(1)

wd.find_elements(By.LINK_TEXT, '查看')[0].click()

for i in wd.find_elements(By.LINK_TEXT, '查看') :

    if i.text == '查看':

        i.click()

        break

wd.switch_to.window(wd.window_handles[-1])

sleep(3)

wd.get_screenshot_as_file('D:\\test_handles.png')

wd.find_element(By.CSS_SELECTOR,'body > div.el-dialog__wrapper > div > div.el-dialog__header > button > i').click()

通过代码捕获的截图:

是否执行成功:

    1. 第二题脚本

脚本:

import unittest

from time import sleep

from selenium import webdriver

from selenium.webdriver.common.by import By

class test(unittest.TestCase):

    def setUp(self) -> None:

        self.wd = webdriver.Chrome()

        self.wd.get('http://192.168.46.5:28945/login?redirect=%2Fsystem%2Fuser')

        self.wd.maximize_window()

        self.wd.implicitly_wait(3)

    def test_denglu01(self):

        self.wd.find_element(By.ID, 'username').send_keys('XTGLY')

        self.wd.find_element(By.ID, 'password').send_keys('123456')

        self.wd.find_element(By.XPATH, '//button[@id="signIn"]').click()

    def test_denglu02(self):

        self.wd.find_element(By.CSS_SELECTOR, '#username').send_keys('XTGLY')

        self.wd.find_element(By.CSS_SELECTOR, '#password').send_keys('123456')

        self.wd.find_element(By.TAG_NAME, 'button').click()

        self.wd.find_element(By.PARTIAL_LINK_TEXT, '供应商信息').click()

        sleep(1)

        self.wd.find_element(By.XPATH, '//*[@id="app"]/div/div[2]/section/div/div[3]/div[3]/table/tbody/tr/td[6]/div/button[1]/span/a').click()

        self.wd.switch_to.window(self.wd.window_handles[-1])

        self.wd.find_element(By.XPATH,'/html/body/div[2]/div/div[1]/button/i').click()

        sleep(1)

        self.wd.get_screenshot_as_file('tm2.png')

    def tearDown(self) -> None:

        self.wd.quit()

if __name__ == '__main__':

    unittest.main()

是否执行成功:

    1. 第三题脚本

脚本:

#csvv.py

import csv

def get_dt() :

    with open('testdata.csv','r',encoding='utf-8') as f :

        return list(csv.reader(f))[1]

#test01.py

import unittest

import unittest

from time import sleep

from ddt import *

from selenium import webdriver

from selenium.webdriver.common.by import By

from csvv import get_dt

@ddt

class test(unittest.TestCase):

    def setUp(self) -> None:

        self.wd = webdriver.Chrome()

        self.wd.get('http://192.168.46.5:28945/login?redirect=%2Fsystem%2Fuser')

        self.wd.maximize_window()

        self.wd.implicitly_wait(5)

    @data(get_dt())

    def test_denglu01(self, dt):

        mingc, duany = dt

        self.wd.find_elements(By.TAG_NAME, 'input')[0].send_keys('XTGLY')

        self.wd.find_element(By.CLASS_NAME, 'password').send_keys('123456')

        self.wd.find_element(By.NAME, 'signIn').click()

        self.wd.find_element(By.PARTIAL_LINK_TEXT, '商品分类').click()

        sleep(1)

        for i in self.wd.find_elements(By.TAG_NAME, 'button'):

            if i.text == '新增':

                i.click()

                break

        self.wd.find_element(By.CSS_SELECTOR,

                             'body > div.el-dialog__wrapper > div > div.el-dialog__body > form > div > div > div > div > input').send_keys(

            mingc)

        self.wd.find_element(By.XPATH, '/html/body/div[2]/div/div[3]/div/button[1]').click()

        sleep(1)

        text = self.wd.find_element(By.CLASS_NAME, 'el-form-item__error').text

        self.assertEqual(text,duany)

#验证预期结果和实际结果是否一致,如果不一致进行截图操作

    def tearDown(self) -> None:

        self.wd.quit()

if __name__ == '__main__':

    unittest.main()

是否执行成功:

    1. 第四题脚本

项目目录截图:

BasePage.py脚本:

class BasePage():

    def __init__(self, wd) -> None:

        self.wd = wd

        self.url = 'http://192.168.46.5:28945/gen/product/category'

    def get(self):

        self.wd.get(self.url)

    def find_element(self, by, st):

        return self.wd.find_element(by, st)

    def find_elements(self, by, st):

        return self.wd.find_elements(by, st)

LoginPage.py脚本:


from selenium.webdriver.common.by import By

from EPR_PO.Website.test_case.page_object.BasePage import BasePage

class LogingPage(BasePage):

    zip_c2 = (By.CLASS_NAME, 'username')

    zip_c3 = (By.NAME, 'password')

    zip_c4 = (By.ID, 'signIn')

    def c1(self):

        self.get()

    def c2(self,username):

        self.find_element(*self.zip_c2).send_keys(username)

    def c3(self,password):

        self.find_element(*self.zip_c3).send_keys(password)

    def c4(self):

        self.find_element(*self.zip_c4).click()

def go_login(wd,username,password) :

    lg = LogingPage(wd)

    lg.c1()

    lg.c2(username)

    lg.c3(password)

    lg.c4()

AddPage.py脚本:

from time import sleep

from selenium.webdriver.common.by import By

from EPR_PO.Website.test_case.page_object.BasePage import BasePage

class AddPage(BasePage):

    zip_c1 = (By.PARTIAL_LINK_TEXT, '商品分类')

    zip_c2 = (By.CSS_SELECTOR, '#app > div > div.main-container.hasTagsView > section > div > div.mb8.el-row > div:nth-child(3) > button')

    zip_c3 = (By.XPATH, '/html/body/div[2]/div/div[2]/form/div/div/div/div/input')

    zip_c4 = (By.CSS_SELECTOR, 'body > div.el-dialog__wrapper > div > div.el-dialog__footer > div > button.el-button.el-button--primary.el-button--medium')

    zip_c5 = (By.CLASS_NAME, 'el-form-item__error')

    def c1(self):

        self.find_element(*self.zip_c1).click()

    def c2(self):

        self.find_element(*self.zip_c2).click()

    def c3(self, mingc):

        self.find_element(*self.zip_c3).send_keys(mingc)

    def c4(self):

        self.find_element(*self.zip_c4).click()

    def c5(self):

        return self.find_element(*self.zip_c5).text

def go_add(wd, mingc):

    ad = AddPage(wd)

    ad.c1()

    sleep(1)

    ad.c2()

    ad.c3(mingc)

    ad.c4()

    sleep(1)

    try:

        text = ad.c5()

        print(text)

        return text

    except:

        print('新增成功。')

        return '新增成功。'

test_Add.py脚本:


from ddt import *

from EPR_PO.Website.test_case.model.function import get_data, get_png

from EPR_PO.Website.test_case.model.myunit import myunit

from EPR_PO.Website.test_case.page_object.AddPage import go_add

from EPR_PO.Website.test_case.page_object.LogingPage import go_login

@ddt

class test_add(myunit):

    @data(get_data(1))

    def test_01(self, data):

        mingc, duany = data

        go_login(self.wd, 'XTGLY', '123456')

        text = go_add(self.wd, mingc)

        get_png(self.wd,'tm1')

        self.assertIn(text,duany)

    @data(get_data(2))

    def test_02(self, data):

        print(data)

        mingc, duany = data

        go_login(self.wd, 'XTGLY', '123456')

        text = go_add(self.wd, mingc)

        get_png(self.wd, 'tm2')

        self.assertIn(text, duany)

    @data(get_data(3))

    def test_03(self, data):

        mingc, duany = data

        go_login(self.wd, 'XTGLY', '123456')

        text = go_add(self.wd, mingc)

        get_png(self.wd, 'tm3')

        self.assertIn(text, duany)

    @data(get_data(4))

    def test_04(self, data):

        mingc, duany = data

        go_login(self.wd, 'XTGLY', '123456')

        text = go_add(self.wd, mingc)

        get_png(self.wd, 'tm4')

        self.assertIn(text, duany)

    @data(get_data(5))

    def test_05(self, data):

        mingc, duany = data

        go_login(self.wd, 'XTGLY', '123456')

        text = go_add(self.wd, mingc)

        get_png(self.wd, 'tm5')

        self.assertIn(text, duany)

    @data(get_data(6))

    def test_06(self, data):

        mingc, duany = data

        go_login(self.wd, 'XTGLY', '123456')

        text = go_add(self.wd, mingc)

        get_png(self.wd, 'tm6')

        self.assertIn(text, duany)

测试报告截图:

是否执行成功:是

截图上传失败,我是直接复制我的自动化测试文档,需要详细的资料关注公众号——程序员卖青花瓷,回复软件测试,该文档主要用于软件测试比赛使用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值