• Jmeter进阶之性能测试响应结果保存到本地


    一、配置(config)

    1.1 说明

    设置自动化案例运行时的属性值。

    安排自动化案例的执行顺序。
    所在路径:
    …\Project_Selenium\config

    1.2 文件
    1.2.1 config.ini
    目录:
    …\Project_Selenium\config\config.ini

    配置字段:
    1 [PROJECT]
    1.1 browserType
    说明:
    浏览器类型
    示例:
    browserType = Chrome
    browserType = FireFox

    2 [TEST]
    2.1 timeOut
    说明:
    隐形等待时间,单位秒
    示例:
    timeOut = 10

    3 [LOG]
    3.1 loggingLevel
    说明:
    输出日志级别
    支持debug, info, warn, warning, error, fatal, critical,级别有低到高,配置级别会记录>=该级别的日志信息

    示例:
    loggingLevel = info
    loggingLevel = error

    4 [EMAIL]
    4.1 sendEmail
    说明:
    自动化执行完毕后是否发送邮件

    示例:
    sendEmail = False

    4.2 SMTPLoginName
    说明:
    SMTP服务器登录名

    示例:
    SMTPLoginName = zhangsan@outlook.com

    4.3 SMTPLoginPasswd
    说明:
    SMTP服务器登录密码

    示例:
    SMTPLoginPasswd = 12345678

    4.4 senderAddress
    说明:
    发件地址

    示例:
    senderAddress = zhangsan @outlook.com

    4.5 SMTPServerAddress
    说明:
    SMTP服务器地址

    示例:
    SMTPServerAddress = smtp-mail.outlook.com

    4.6 SMTPPort
    说明:
    SMTP服务器地址端口

    示例:
    SMTPPort = 587

    4.7 emailTitle
    说明:
    邮件主题
    示例:
    emailTitle = Web自动化测试报告邮件

    4.8 emailText
    说明:
    正文内容
    示例:
    详细测试报告请查看附件...

    5 [receiversAddress]
    说明:
    收件地址 可配置多个
    注意:
    选项名不能重复

    5.1 address1
    说明:
    地址1
    示例:
    address1 =123456789@qq.com

    5.2 address2
    说明:
    地址2
    示例:
    address2 = zhangsan@outlook.com

    测试案例运行配置.xlsx
    目录:
    …\Project_Selenium\config\测试案例运行配置.xlsx

    配置说明:
    如下表格为<测试案例运行配置.xlsx>的配置样式(Sheet页)
    配置方式 路径 文件名 类名 方法名 是否执行 场景描述 说明

    1. 按方法运行 test 案例_1.py Test_1 test_baidu_1_search Y    
    2. 按方法运行 test 案例_2.py Test_2 test_baidu_2_search Y    
    3. 按方法运行 test 案例_2.py Test_2 test_baidu_3_search N    
    4. 按类名运行 test 案例_2.py Test_2 - Y    
    5. 按路径运行 \test\测试集_1\ - - - Y    
    6. 按路径运行 \test\ - - - Y    

    1 配置方式

    说明:

    组织测试案例、运行测试案例的方式。

    运行时会按照案例顺序从上往下执行。

    多进程并发执行只需要在该案例中配置其他Sheet页即可,同一Excel中的不同Sheet页并发执行。

    1.1 1-按方法运行

    说明:

    我们以案例1.py文件为例,如下图。

    执行时只会执行该方法内的案例。

    如果一个py文件中有多个测试案例(方法),而测试时只执行其中的某些,可以通过这一配置实现。

    1.2 2-按类名运行

    说明:

    我们以案例2.py文件为例,如下图。

    配置该文件的类并以‘2-按类名运行’则运行时会执行该案例的所有方法(test_baidu_2_search 和 test_baidu_3_search)。

    如果一个py文件中有多个测试案例(方法),并需要全部执行,可以通过类名配置运行。

    1.3 3-按路径运行

    说明:

    当前…\Project_Selenium\test 下的目录文件结构如下:

    1. ---->.\test
    2. ---->\测试集_1
    3. ---->测试集1_案例1_zhaopin_1.py
    4. ---->案例_1.py
    5. ---->案例_2.py
    6. ---->案例_3.py
    7. ---->案例_4.py
    8. ---->案例_5.py

    若按照路径配置运行时,例如配置“\test\”,执行时会先执行当前目录下的文件(案例_1.py到案例_5.py),然后再执行当前目录中文件夹下的其他案例(测试集_1下的测试集1_案例1_zhaopin_1.py)。

    2 路径

    说明:

    1.路径务必为相对路径

    2.以项目中案例目录(test)为起始目录

    示例:

    test\directory1\directory2

    3 文件名

    说明:

    此处输入测试用例的文件名,包含后缀。

    示例:

    案例_1.py

    4 类名

    说明:

    文件中定义的类名,区分大小写

    5 方法名

    说明:

    类中定义的方法名,区分大小写

    6 是否执行

    说明:

    N-不执行

    Y-执行

    7 场景描述

    说明:

    描述场景

    8 说明

    1.3.3 测试计划配置.xlsx

    目录:

    …\Project_Selenium\config\测试计划配置.xlsx

    配置说明:

    如下表格为<测试计划配置.xlsx>的配置样式

    顺序执行 文件名 是否执行 说明

    1. 测试案例运行配置.xlsx Y 执行前准备
    2. 测试案例运行配置.xlsx Y 并发执行_1
    3. 测试案例运行配置.xlsx Y 并发执行_2
    4. 测试案例运行配置.xlsx Y 执行后处理

    1 顺序执行

    说明:

    组织《测试案例运行配置.xlsx》的运行顺序。

    运行时会按照案例顺序从上往下执行。

    2 文件名

    说明:

    配置…\Project_Selenium\config\路径下“测试案例运行配置.xlsx”的文件名包含后缀格式。

    3 是否执行

    说明:

    N-不执行

    Y-执行

    二、日志(log)

    2.1 说明

    自动化运行时记录并保存日志为log.log文件

    自动保存截图照片文件,文件格式为YYYMMDD-hh24mmss.png,截图方法在Driver类中会介绍

    所在路径:

    …\Project_Selenium\log

    三、数据(data)

    3.1 说明

    1. 支持对.csv、.xlsx 格式的数据文件读写,可以将测试数据维护在此目录。

    所在路径:

    …\Project_Selenium\data

    3.2 读写方法

    示例文件:

    登录名 密码 是否通过

    1. 张三 password N
    2. 李四 password Y
    1. Excel/CSV读
    2. def readExcel(self, path: str, column=1, row=1, sheet=1):
    3. """
    4. 读取Excel某一单元格数据
    5. :param path: Excel路径 type=str
    6. :param sheet: 第几个sheet页或sheet页名称 type=int or str
    7. :param row: 行数 type=int
    8. :param column: 列数或列字段名 type=int or str
    9. :return: 单元格的值
    10. """
    11. def readCsv(self, path: str, column=1, row=1, fields=True):
    12. """
    13. 说明:读取csv某一单元格数据
    14. 注意:文件编码建议使用utf-8
    15. :param path: csv文件路径 type=str
    16. :param row: 行数 type=int
    17. :param column: 字段名或列数 type=str or int
    18. :param fields: csv文件第一行是否是字段
    19. :return: 单元格值
    20. """

     获取指定列数和行数的单元格数据

    1. readExcel( path=r”C:\LoginData.xlsx”, column=1, row=1)
    2. readCsv ( path=r”C:\LoginData.csv”, column=1, row=1)

    获取指定列名和行数的单元格数据

    1. readExcel( path=r”C:\LoginData.xlsx”, column=”登录名”, row=1)
    2. readCsv ( path=r”C:\LoginData. csv”, column=”登录名”, row=1)

    写入Excel指定单元格数据

    1. :param path: Excel路径 type=str
    2. :param row: 行数 type=int
    3. :param column: 列数或列字段名 type=int or str
    4. :param value: 需要写入的数据 type=str
    5. :param sheet: 第几个sheet页或sheet页名称 type=int or str
    6. """
    7. def writeCsv(self, path: str, value="", column=1, row=1, fields=True):
    8. """

     说明:写入csv指定单元格数据

    1. 注意:文件编码建议使用utf-8
    2. :param path: csv文件路径 type=str
    3. :param value: 需要写入的数据 type=str
    4. :param row: 行数 type=int
    5. :param column: 字段名或列数 type=str or int
    6. :param fields: csv文件第一行是否是字段
    7. :return: None
    8. """

    示例:

    1. 根据指定行列数设置单元格数值
    2. readExcel( path=r”C:\LoginData.xlsx” , value=”N” , column=3, row=2)
    3. readCsv( path=r”C:\LoginData. csv” , value=”Y” , column=3, row=3)
    1. 根据指定列名和行数设置单元格数值
    2. readExcel( path=r”C:\LoginData.xlsx” , value=”李四” , column=”是否通过”, row=2)
    3. readCsv( path=r”C:\LoginData. csv” , value=”李四” , column=”是否通过”, row=3)

    四、驱动(drivers)

    4.1 说明

    管理浏览器对应的驱动文件。

    自动化案例执行时使用的是该目录下的驱动。

    所在路径:

    …\Project_Selenium\ drivers

    五、元素(elements)

    5.1 说明

    在该目录下编写页面的元素,可以将元素与案例隔离,分别维护。

    所在路径:

    …\Project_Selenium\ elements

    1. class 首页():
    2. 输入框 = (By.CSS_SELECTOR, "#kw")
    3. 确定按钮 = (By.CSS_SELECTOR, "#su")
    1. def setUpClass(cls):
    2. cls.driver = Driver("https://www.baidu.com", "chrome")
    3. @classmethod # 执行整个TestCase中只调用一次setUp和tearDown
    4. def tearDownClass(cls):
    5. cls.driver.quit()
    6. def test_baidu_1_search(self):
    7. self.driver.getelement((首页.输入框)).clear()
    8. self.driver.getelement((首页.输入框)).send_keys("Python")
    9. self.driver.getelement(*(首页.确定按钮)).click()

    六、报告(report)

    6.1 说明

    自动化运行结束后生成报告文件,

    格式为“
    ResultReport_YYYYMMDD_hh24mmss.html”

    所在路径:

    …\Project_Selenium\ report

    七、源码(src)

    7.1 说明:

    该目录为项目源码

    所在路径:

    …\Project_Selenium\ src

    八、测试用例(test)

    8.1 说明

    该目录为测试用例存放目录

    所在路径:

    …\Project_Selenium\ test

    示例代码:

    1. coding:utf-8
    2. import unittest
    3. import time
    4. from elements.百度 import 首页 # 元素库
    5. from src.log import Log # 日志记录功能
    6. from src.public import Public # 继承一些公共方法
    7. from src.testcasemore import TestCaseMore # 集成扩展unittest.TestCase功能的类
    8. from src.newselenium import Driver # 使用经过二次封装的Dirver
    9. logger = Log().getLogger # 创建日志记录对象,记录日志信息通过logger.info logger.error选择不同级别来记录
    10. class Test_1(TestCaseMore, unittest.TestCase): # 继承TestCaseMore 和 unittest.TestCase两个类,必填
    11. @classmethod # 执行整个TestCase中只调用一次setUp
    12. def setUpClass(cls): # 案例初始化时执行
    13. cls.driver = Driver("https://www.baidu.com", "chrome") # 初始化驱动,指定浏览器类型并打开初始url

    案例也可单独调试

    1. if name == "main":
    2. unittest.main()

    九、其他

    9.1 .idea

    说明:

    项目工程配置文件,可以忽略,请勿删除

    9.2 tutorial

    说明:

    自动化框架相关手册和说明

    9.3 runtest.bat

    说明:

    自动化执行bat脚本

    9.4 runtest.py

    说明:

    自动化开始执行py文件

    最后在我的QQ技术交流群里整理了我这10几年软件测试生涯整理的一些技术资料,包括:电子书,简历模块,各种工作模板,面试宝典,自学项目等。如果在学习或工作中遇到问题,群里也会有大神帮忙解答,群号 798478386 ( 备注CSDN555 )

    全套软件测试自动化测试教学视频

     300G教程资料下载【视频教程+PPT+项目源码】

    全套软件测试自动化测试大厂面经

  • 相关阅读:
    Markdown 语言服务器是如何诞生的?
    Java基础之final(最简单最详细)
    大模型日报 2024-06-28
    IDEA中 tomcat 控制台中文乱码解决
    Java面试题之线程通信的方式
    蓝桥杯刷题6--二分法
    yum方式更新Jenkins
    windows10关闭自动更新
    systemverilog:interface中端口方向、Clocking block的理解
    Hadoop伪分布式搭建步骤
  • 原文地址:https://blog.csdn.net/caixiangting/article/details/125916425