首页 > 其他分享 >使用unittest运行第一个web自动化测试用例

使用unittest运行第一个web自动化测试用例

时间:2023-03-27 17:51:18浏览次数:43  
标签:web 测试报告 unittest py driver 测试用例 div

unittest:和pytest一样的测试框架,区别在于pytest是第三方框架,unittest是标准库框架

一、框架的分层:

1、新建一个项目文件夹,并在vscode中打开它

               

 

 

2、在项目文件夹内分层

driver层(文件夹):用于存放浏览器驱动文件

case层(文件夹):用于存放测试用例

report层(文件夹):测试报告层

utils层(文件夹):工具层 ,需要在utils层建立init文件,让他们变成可以导入的包

po层(文件夹):需要在po层建立init文件,让他们变成可以导入的包

run.py(文件):整个项目的入口

 

 二、使用unittest编写第一个测试案例

1、将浏览器驱动文件放在driver层

两种方式:1、将驱动文件直接拖拽进driver层;2、选中driver层,右键-->在文件资源管理器中显示-->将驱动文件粘贴到driver文件夹下

 2、写测试用例

unittest的测试用例是以类的方式存在的,有以下命名规则:

  • py文件必须是test_开头,建议以三段式命名:test_运行顺序_模块名字.py
  • py文件中的类必须要继承unittest.TesCase
  • 每个测试用例以成员方法的形式存在

必须同时满足以上三个要求,unittest才能自动运行所有的test_测试用例

编写第一个测试用例:

import unittest
from selenium import webdriver
import time

class TestCaseLogin(unittest.TestCase):

    def test_01_login_success(self):
        driver = webdriver.Chrome("driver\chromedriver.exe")
        driver.maximize_window()
        driver.get("http://47.113.200.30:2333/")

        driver.find_element_by_id("name").send_keys("langjin")
        driver.find_element_by_id("password").send_keys("123456")
        #//*[@id="popContainer"]/div/div[1]/div[2]/form/div[3]/div/div/span/button
        driver.find_element_by_xpath('//*[@id="popContainer"]/div/div[1]/div[2]/form/div[3]/div/div/span/button').click()
        time.sleep(6)

        e = driver.find_element_by_xpath('//*[@id="popContainer"]/section/aside/div/div/a/h1')
        assert e.text == "人才信息共享平台"

3、运行第一个测试用例:

测试报告:测试报告通常采用htmltestrunner.py第三方测试报告工具来自动运行测试用例和生成测试报告。和pytest不一样,需要在run.py文件里编写代码实现自动运行所有的测试方法。

①、首先需要准备一个测试报告的工具:HTMLTestRunner_PY3,py,下载后放在utils层

 

 ②、在run.py文件中编写代码,运行测试用例:

代码实现:
# 整个项目的运行入口

import unittest
from utils.HTMLTestRunner_PY3 import HTMLTestRunner

#1.自动查找所有的测试用例
#自动查找case层下所有以test_.py结尾的文件
#文件里面的要求是类必须继承unittest.TestCase,成员方法的命名规则以test_开头
testcase = unittest.defaultTestLoader.discover('case','test_*.py')

#2.使用htmltestrunner运行所有的测试用例并生成测试报告
report_path = "report/test.html"      #测试报告
report_title = "人才管理系统自动化测试报告"   #测试报告
report_descr = "人才管理系统自动化测试报告描述"    #描述
with open(report_path,"wb") as f:
    runner = HTMLTestRunner(stream=f,title=report_title,description=report_descr)       #这里是在实例化类
    runner.run(testcase)

③、运行后会自动在report层生成一个test.html文件,在网页中打开后如图所示:

 

 

                           

 

标签:web,测试报告,unittest,py,driver,测试用例,div
From: https://www.cnblogs.com/bzbz/p/17249247.html

相关文章

  • 百度2020校招Web前端工程师笔试卷(第三批)(大题21~23)
    <!DOCTYPEhtml><html><head><metacharset="UTF-8"><style>body,ul,li,select{margin:0;padding:0;box-sizing:border-box......
  • web自动化中浏览器实例化优化及关联
    在一个测试案例py文件中,可能会有多个测试案例,比如登录,会有登录成功和登录失败的情况,执行测试用例后,就会打开两个网页。为了解决这个问题,需要进行优化来解决浏览器重复打开......
  • 小皮Windows web面板漏洞详解
    漏洞简介PhpStudy国内12年老牌公益软件,集安全、高效、功能与一体,已获得全球用户认可安装,运维也高效。支持一键LAMP、LNMP、集群、监控、网站、数据库、FTP、软件中心......
  • 测试用例设计指南
    作者:京东物流 王玉坤软件测试设计是测试过程中重要的测试活动,怎么样设计测试用例能提高我们测试的效率和质量,从以下几个方面做了简单的讲解。1测试用例设计原则测试......
  • 优化 vue 使用 webpack 打包,出现的缓存问题 及 项目部署问题
    https://blog.csdn.net/qq_39264561/article/details/124844878`constpath=require("path");constwebpack=require("webpack");consttimeStamp=newDate().ge......
  • webpack4.0核心概念(十一)———— babel
    官⽅⽹站:https://babeljs.io/中⽂⽹站:https://www.babeljs.cn/Babel是JavaScript编译器,能将ES6代码转换成ES5代码,让我们开发过程中放⼼使⽤JS新特性⽽不⽤担⼼兼......
  • uniapp app和H5网页的通信 app嵌套H5通过webview
    app发送信息给H5这个很简单,只要在网址上面携带参数就可以上面的例子是在app里面通过webview来嵌套网页,通过src的地址,可以携带参数,这样打开网页通过网址就可以获得传过来......
  • 我用ChatGPT做WebRTC音视频性能优化,主打一个高效
    摘要随着GPT-4的发布,AI的风越吹越旺。GPT-4可以回答问题,可以写作,甚至可以基于一张草图生成html代码搭建一个网站。即构社区的一位开发者@倪同学就基于目前在研究的WebRTC......
  • spring-web中的annotation注解之十:@ModelAttribute
    spring-web中的annotation注解之十:@ModelAttribute1、@ModelAttribute注解在方法上:*该方法在Controller每个方法执行前会被调用,没有返回值的@ModelAttribute方法使用mo......
  • webpack中loader和plugin的区别
    从功能作用的角度区分:1、loader:loader从字面的意思理解,是加载的意思。由于webpack本身只能打包commonjs规范的js文件,所以,针对css,图片等格式的文件没法打包......