web自动化(3)——项目实战之流程用例编写

我的示例项目是一个管理后台项目,各位也可以使用自己的项目进行用例流程编写

业务流程:登录后点击贷款管理——新增贷款——填写表单后提交新增。

我所使用的这个流程中包含了框架切换、输入框、点击、下拉选择框、文件上传、时间控件等。

然后这里还将之前验证码识别和cookies的保存加载等方法进行封装,新建funcs.py,将方法移入该文件中,然后使用时进行导入即可

公共方法funcs.py

import json

import requests

def img1code(path):
    resp = requests.post(
        "https://upload.chaojiying.net/Upload/Processing.php",
        data={
            "user": "***",  # 需要自己注册输入自己的用户名密码
            "pass": "***",
            "softid": "96002",
            "codetype": "1902",  # 在官网根据自己的验证码选择验证码类型
        },
        files={"userfile": open(path, "rb")},  # 验证码截图
    )
    if resp.json()["err_no"] == 0:
        print("识别成功")
        return resp.json()["pic_str"]

    else:
        print("识别失败", resp.json()["err_str"])
        return False


def save_cookies(driver):
    """获取cookies将其存入本地文件"""
    cookies = driver.get_cookies()  # 获取cookies
    with open("cookies.json", "w") as f:
        f.write(json.dumps(cookies))


def load_cookies(driver):
    """从本地文件加载cookies"""
    driver.get('http://47.107.116.139/fangwei/m.php?m=Public&a=login&')
    with open("cookies.json") as f:
        _data = f.read()
        if _data:
            cookies = json.loads(_data)
        else:
            cookies = []
    for cookie in cookies:
        driver.add_cookie(cookie)  # 使用cookies
    driver.refresh()  # 刷新页面,向服务器发送cookies


def is_login(driver):
    """判断是否登录"""
    if '管理员登录' in driver.title:
        return False
    else:
        print('已经登录')
        return True

管理后台admin.py

from selenium.webdriver import Chrome
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select
from funcs import load_cookies, is_login, img1code, save_cookies

driver = Chrome()
driver.implicitly_wait(10)  # 隐式等待
load_cookies(driver)  # 浏览器启动后,加载cookies
driver.refresh()  # 刷新页面,向服务器发送cookies
# 判断:只有未登录,才执行登陆流程
if is_login(driver) is False:
    driver.get('http://47.107.116.139/fangwei/m.php?m=Public&a=login&')
    driver.find_element(By.XPATH, '//*[@id="verify"]').screenshot("code.png")  # 保存验证码图片
    code = img1code("code.png")  # 识别验证码
    if code:
        driver.find_element(By.XPATH, '/html/body/form/table/tbody/tr/td[3]/table/tbody/tr[2]/td[2]/input').send_keys(
            'admin')  # 输入用户名
        driver.find_element(By.XPATH, '/html/body/form/table/tbody/tr/td[3]/table/tbody/tr[3]/td[2]/input').send_keys(
            'msjy123')  # 输入密码
        driver.find_element(By.XPATH, '/html/body/form/table/tbody/tr/td[3]/table/tbody/tr[5]/td[2]/input').send_keys(
            code)  # 输入验证码
        driver.find_element(By.XPATH, '//*[@id="login_btn"]').click()  # 点击登录
    else:
        print("验证码识别失败,无法登录")

# 点击贷款管理
frame = driver.find_element(By.XPATH, '/html/frameset/frame[1]')  # 进入框架
driver.switch_to.frame(frame)
driver.find_element(By.XPATH, '//*[@id="navs"]/ul/li[2]/a').click()
driver.switch_to.default_content()  # 退出框架

# 点击全部贷款
frame = driver.find_element(By.XPATH, '//*[@id="menu-frame"]')  # 进入框架
driver.switch_to.frame(frame)
driver.find_element(By.XPATH, '/html/body/dl[1]/dd[1]/a').click()
driver.switch_to.default_content()  # 退出框架

# 定位到框架后再点击新增贷款
frame = driver.find_element(By.XPATH, '//*[@id="main-frame"]')  # 进入框架
driver.switch_to.frame(frame)
driver.find_element(By.XPATH, '/html/body/div[2]/div[3]/input[1]').click()
driver.find_element(By.XPATH, '//*[@id="colorpickerField"]').send_keys('#f00')  # 颜色
driver.find_element(By.XPATH, '/html/body/div[2]/form/table[1]/tbody/tr[4]/td[2]/input').send_keys(
    'wxm需要借款1个亿')  # 贷款名称
driver.find_element(By.XPATH, '/html/body/div[2]/form/table[1]/tbody/tr[5]/td[2]/input').send_keys('wxm借1个亿')  # 简短名称
driver.find_element(By.XPATH, '/html/body/div[2]/form/table[1]/tbody/tr[6]/td[2]/input[1]').send_keys('beifan')  # 会员名称
driver.find_element(By.XPATH, '//strong[text()="beifan"]').click()  # 下拉选择框选择会员
driver.find_element(By.XPATH, '//*[@id="citys_box"]/div[1]/div[2]/input[1]').click()  # 所在城市
# 分类-房产抵押
el = driver.find_element(By.XPATH, '/html/body/div[2]/form/table[1]/tbody/tr[8]/td[2]/select')
Select(el).select_by_visible_text('|--房产抵押标')
# 担保机构
el = driver.find_element(By.XPATH, '/html/body/div[2]/form/table[1]/tbody/tr[9]/td[2]/select')
Select(el).select_by_visible_text('担保机构01')
# # 担保范围
# driver.find_element(By.XPATH, '/html/body/div[2]/form/table[1]/tbody/tr[10]/td[2]/select')
# Select(el).select_by_visible_text('本金')
# 贷款缩略图
driver.find_element(By.XPATH,
                    '/html/body/div[2]/form/table[1]/tbody/tr[14]/td[2]/span/div[1]/div/div/button').click()  # 图片上传
driver.find_element(By.XPATH, '/html/body/div[6]/div[1]/div[2]/div/div[1]/ul/li[2]').click()  # 本地上传
driver.find_element(By.XPATH, '//input[@type="file"]').send_keys(r'D:\pythonProject2\code.png')  # 发送文件
driver.find_element(By.XPATH, '/html/body/div[6]/div[1]/div[3]/span[1]/input').click()  # 确定

el = driver.find_element(By.XPATH, '/html/body/div[2]/form/table[1]/tbody/tr[15]/td[2]/select')  # 借款用途
Select(el).select_by_visible_text('个人消费')
el = driver.find_element(By.XPATH, '/html/body/div[2]/form/table[1]/tbody/tr[16]/td[2]/select')  # 还款方式
Select(el).select_by_visible_text('到期还本息')
el = driver.find_element(By.XPATH, '/html/body/div[2]/form/table[1]/tbody/tr[17]/td[2]/select')  # 借款合同范本
Select(el).select_by_visible_text('等额本息合同范本【担保】')
el = driver.find_element(By.XPATH, '/html/body/div[2]/form/table[1]/tbody/tr[18]/td[2]/select')  # 转让合同范本
Select(el).select_by_visible_text('付息还本合同范本【普通】')

# 借款金额
driver.find_element(By.XPATH, '/html/body/div[2]/form/table[1]/tbody/tr[19]/td[2]/input').clear()
driver.find_element(By.XPATH, '/html/body/div[2]/form/table[1]/tbody/tr[19]/td[2]/input').send_keys('500000')
# 投标类型
el = driver.find_element(By.XPATH, '/html/body/div[2]/form/table[1]/tbody/tr[21]/td[2]/select')  # 转让合同范本
Select(el).select_by_visible_text('按金额')
# 最低投标金额
driver.find_element(By.XPATH, '/html/body/div[2]/form/table[1]/tbody/tr[22]/td[2]/input').clear()
driver.find_element(By.XPATH, '/html/body/div[2]/form/table[1]/tbody/tr[22]/td[2]/input').send_keys('100')
# 年利率
driver.find_element(By.XPATH, '/html/body/div[2]/form/table[1]/tbody/tr[27]/td[2]/input').send_keys('5')
# 筹标期限
driver.find_element(By.XPATH, '/html/body/div[2]/form/table[1]/tbody/tr[28]/td[2]/input').send_keys('30')
# 贷款描述
frame = driver.find_element(By.XPATH,
                            '/html/body/div[2]/form/table[1]/tbody/tr[30]/td[2]/div/div/div[2]/iframe')  # 进入框架
driver.switch_to.frame(frame)
driver.find_element(By.XPATH, '/html/body').send_keys('abcd')
driver.switch_to.default_content()  # 退出框架
# 借款状态
frame = driver.find_element(By.XPATH, '//*[@id="main-frame"]')
driver.switch_to.frame(frame)
driver.find_element(By.XPATH, '/html/body/div[2]/form/table[1]/tbody/tr[33]/td[2]/label[1]/input').click()
# 开始时间
el = driver.find_element(By.XPATH, '//*[@id="start_time"]')
driver.execute_script("arguments[0].scrollIntoView()", el)
driver.execute_script("arguments[0].value='2023-11-20 18:02:02'", el)  # 通过js强制输入
# 新增
driver.find_element(By.XPATH, '/html/body/div[2]/form/table[6]/tbody/tr[2]/td[2]/input[4]').click()
# 断言添加成功
el = driver.find_element(By.XPATH, '/html/body/div/table/tbody/tr[3]/td')
msg = el.text  # 元素中的文本
if msg == '添加成功':
    print('ok')
else:
    print(f"fail", msg)
save_cookies(driver)  # 浏览器关闭前,保存cookies
driver.quit()

前台user.py

import time

from selenium.webdriver import Chrome
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait

driver = Chrome()
driver.implicitly_wait(10)  # 隐式等待
# 访问前台
driver.get('http://47.107.116.139/fangwei/index.php')
driver.find_element(By.XPATH, '//*[@id="user_head_tip"]/a[1]').click()  # 点击立即登录按钮
driver.find_element(By.XPATH, '//*[@id="login-email-address').send_keys('admin')  # 输入用户名
driver.find_element(By.XPATH, '//*[@id="login-password"]').send_keys('msjy123')  # 输入密码
driver.find_element(By.XPATH, '//*[@id="ajax-login-submit"]').click()  # 点击登录按钮
time.sleep(1)
driver.get('http://47.107.116.139/fangwei/index.php?ctl=deal&id=25370&preview=1')
driver.find_element(By.XPATH, '//*[@id="J_BIDMONEY"]').send_keys('100')  # 输入投资金额
driver.find_element(By.XPATH, '//*[@id="tz_link"]').click()  # 点击立即投资
driver.find_element(By.XPATH, '//*[@id="J_bid_password"]').send_keys('msjy123')  # 输入支付密码
driver.find_element(By.XPATH, '//*[@id="J_bindpassword_btn"]').click()  # 点击确定按钮
# 提示信息
msg = WebDriverWait(driver, 10).until(
    lambda x: driver.find_element(
        By.XPATH, '//*[@id="fanwe_success_box"]/table/tbody/tr/td[2]/div[2]'
    ).text
)
print(msg)

以上代码缺点:

  1. 没有层次,不好维护
  2. 无法复用,代码工作大
  3. 无法计入pytest,参数/失败重试、自动截图、测试报告

因此我们必须要对代码进行封装,下章我们将对代码使用POM设计进行重构

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》结合了很多工作中的实际案例,图文并茂,既适合渴望了解性能测试的新人,也适合对性能测试有一定认识和经验的中、高级测试工程师。同时,《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》也可以作为高校开展性能测试课程的参考教材,让在校学生能对性能测试的本质和价值有一定的认识。 《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》是一本基于HP LoadRunner 11工具的指导用书,从性能测试原理到工具使用再到项目实施,全面介绍了性能测试的各个方面,其内容基本主线说明如下。 第一步(了解理论):磨刀不误砍柴工,打下基础;第二步(掌握工具):深入介绍LoadRunner 11工具三大部分(Virtual User Generator、Controller、Analysis)如何实现用户行为的模拟、性能指标的监控、负载的生成及后期的数据分析;第三步(项目实施):理论联系实际,介绍性能测试项目实施的流程和性能测试部门的组织管理;第四步(进阶提升):对一些当下流行的或比较特殊的协议和开发技巧通过真实案例进行介绍。 基础篇 第1章 性能测试基础 1.1 性能测试工程师的标准及挑战 1.1.1 性能测试工程师的考评指标 1.1.2 性能测试工程师的挑战 1.2 性能测试基础 1.2.1 性能定义 1.2.2 性能指标 1.2.3 单机与网络性能测试 1.2.4 性能测试的流程 1.2.5 性能测试招聘要求 1.2.6 性能测试学习阶段 1.3 性能分析与调优 1.3.1 性能分析及调优原理 1.3.2 常见系统性能瓶颈 1.3.3 性能测试的注意要点 1.4 小结 工具篇 第2章 LoadRunner综述 2.1 LoadRunner简介 2.2 LoadRunner工具组成 2.3 性能测试原理 2.4 自动化测试工具和性能测试工具的区别 2.5 协议分析 2.5.1 HTTP详细介绍 2.5.2 HTTP报文结构 2.5.3 HTTP请求 2.5.4 HTTP应答 2.5.5 HTTP捕获 2.5.6 HTTP回放 2.6 安装 2.6.1 在Windows下安装LoadRunner 2.6.2 安装Load Generator 2.6.3 附加组件 2.6.4 LoadRunner License 2.7 LoadRunner性能测试操作流程预览 2.8 小结 第3章 用户行为模拟 3.1 VuGen界面介绍 3.1.1 Tree图形化模式 3.1.2 脚本模式 3.1.3 Output Window 3.2 录制用户行为 3.2.1 录制流程 3.2.2 协议选择 3.2.3 录制选项 3.2.4 开始录制 3.2.5 插入命令 3.2.6 结束录制 3.2.7 回放验证 3.2.8 录制回放常见问题 3.3 脚本开发 3.3.1 Action简介 3.3.2 脚本如何注释 3.3.3 语言规则 3.3.4 如何使用模板 3.3.5 脚本的导入导出 3.3.6 脚本调试 3.4 通用选项(General Options) 3.4.1 Parameterization标签 3.4.2 Replay标签 3.4.3 Environment标签 3.4.4 Display标签 3.4.5 Correlation标签 3.5 运行设置(Run-Time Setting) 3.5.1 Run Logic 3.5.2 Pacing 3.5.3 Log 3.5.4 Think Time 3.5.5 Additional attributes 3.5.6 Miscellaneous 3.5.7 Speed Simulation 3.5.8 Browser Emulation 3.5.9 Preferences 3.5.10 Download Filters 3.5.11 Data Format Extensions 3.6 参数化 3.6.1 参数化的操作 3.6.2 Parameter List界面介绍 3.6.3 VuGen中的参数 3.6.4 Controller中的参数 3.6.5 同行取值(Same line as) 3.6.6 参数类型 3.6.7 数据向导(Data Wizard) 3.6.8 参数和变量 3.7 关联 3.7.1 关联原理 3.7.2 自动关联 3.7.3 手动关联 3.7.4 一边录制一边关联 3.7.5 关联函数web_reg_save_param_ex详解 3.7.6 关联函数web_reg_save_param_regexp详解 3.7.7 关联函数web_reg_save_param_xpath详解 3.
《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》结合了很多工作中的实际案例,图文并茂,既适合渴望了解性能测试的新人,也适合对性能测试有一定认识和经验的中、高级测试工程师。同时,《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》也可以作为高校开展性能测试课程的参考教材,让在校学生能对性能测试的本质和价值有一定的认识。 《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》是一本基于HP LoadRunner 11工具的指导用书,从性能测试原理到工具使用再到项目实施,全面介绍了性能测试的各个方面,其内容基本主线说明如下。 第一步(了解理论):磨刀不误砍柴工,打下基础;第二步(掌握工具):深入介绍LoadRunner 11工具三大部分(Virtual User Generator、Controller、Analysis)如何实现用户行为的模拟、性能指标的监控、负载的生成及后期的数据分析;第三步(项目实施):理论联系实际,介绍性能测试项目实施的流程和性能测试部门的组织管理;第四步(进阶提升):对一些当下流行的或比较特殊的协议和开发技巧通过真实案例进行介绍。 基础篇 第1章 性能测试基础 1.1 性能测试工程师的标准及挑战 1.1.1 性能测试工程师的考评指标 1.1.2 性能测试工程师的挑战 1.2 性能测试基础 1.2.1 性能定义 1.2.2 性能指标 1.2.3 单机与网络性能测试 1.2.4 性能测试的流程 1.2.5 性能测试招聘要求 1.2.6 性能测试学习阶段 1.3 性能分析与调优 1.3.1 性能分析及调优原理 1.3.2 常见系统性能瓶颈 1.3.3 性能测试的注意要点 1.4 小结 工具篇 第2章 LoadRunner综述 2.1 LoadRunner简介 2.2 LoadRunner工具组成 2.3 性能测试原理 2.4 自动化测试工具和性能测试工具的区别 2.5 协议分析 2.5.1 HTTP详细介绍 2.5.2 HTTP报文结构 2.5.3 HTTP请求 2.5.4 HTTP应答 2.5.5 HTTP捕获 2.5.6 HTTP回放 2.6 安装 2.6.1 在Windows下安装LoadRunner 2.6.2 安装Load Generator 2.6.3 附加组件 2.6.4 LoadRunner License 2.7 LoadRunner性能测试操作流程预览 2.8 小结 第3章 用户行为模拟 3.1 VuGen界面介绍 3.1.1 Tree图形化模式 3.1.2 脚本模式 3.1.3 Output Window 3.2 录制用户行为 3.2.1 录制流程 3.2.2 协议选择 3.2.3 录制选项 3.2.4 开始录制 3.2.5 插入命令 3.2.6 结束录制 3.2.7 回放验证 3.2.8 录制回放常见问题 3.3 脚本开发 3.3.1 Action简介 3.3.2 脚本如何注释 3.3.3 语言规则 3.3.4 如何使用模板 3.3.5 脚本的导入导出 3.3.6 脚本调试 3.4 通用选项(General Options) 3.4.1 Parameterization标签 3.4.2 Replay标签 3.4.3 Environment标签 3.4.4 Display标签 3.4.5 Correlation标签 3.5 运行设置(Run-Time Setting) 3.5.1 Run Logic 3.5.2 Pacing 3.5.3 Log 3.5.4 Think Time 3.5.5 Additional attributes 3.5.6 Miscellaneous 3.5.7 Speed Simulation 3.5.8 Browser Emulation 3.5.9 Preferences 3.5.10 Download Filters 3.5.11 Data Format Extensions 3.6 参数化 3.6.1 参数化的操作 3.6.2 Parameter List界面介绍 3.6.3 VuGen中的参数 3.6.4 Controller中的参数 3.6.5 同行取值(Same line as) 3.6.6 参数类型 3.6.7 数据向导(Data Wizard) 3.6.8 参数和变量 3.7 关联 3.7.1 关联原理 3.7.2 自动关联 3.7.3 手动关联 3.7.4 一边录制一边关联 3.7.5 关联函数web_reg_save_param_ex详解 3.7.6 关联函数web_reg_save_param_regexp详解 3.7.7 关联函数web_reg_save_param_xpath详解 3.7.8 关联函数的高级使用 3.8 检查点 3.8.1 文本检查点 3.8.2 自动检查点 3.8.3 图片检查点 3.9 事务 3.9.1 响应时间 3.9.2 添加事务 3.9.3 事务时间 3.9.4 手工事务 3.10 集合点 3.11 小结 第4章 负载生成及监控Controller 4.1 设计场景 4.1.1 新建场景 4.1.2 负载生成器管理 4.1.3 用户管理 4.1.4 运行设置 4.1.5 IP虚拟 4.1.6 场景运行原理 4.1.7 Service Level Agreement(服务品质保障) 4.2 系统监控 4.2.1 Scenario Groups(场景用户状态) 4.2.2 Scenario Status(场景运行状态) 4.2.3 计数器原理 4.2.4 计数器管理 4.2.5 SiteScope 4.3 场景运行 4.4 QTP脚本在场景中的运行 4.5 场景数据 4.6 小结 第5章 数据收集分析Analysis 5.1 新建Analysis分析 5.2 Analysis Summary 5.2.1 Analysis Summary(场景的摘要) 5.2.2 Statistics Summary(场景状态的统计说明) 5.2.3 5 Worst Transaction(SLA失败事务) 5.2.4 Scenario Behavior Over Time(场景行为综述) 5.2.5 Transaction Summary(事务摘要) 5.2.6 HTTP Responses Summary(HTTP响应摘要) 5.3 Graphs(数据图) 5.3.1 Vusers(虚拟用户状态) 5.3.2 Errors(错误统计) 5.3.3 Transactions(事务) 5.3.4 Web Resources(网页资源信息) 5.3.5 Web Page Diagnostics(网页分析) 5.3.6 Network Monitor(网络监控) 5.3.7 Resources(资源监控) 5.4 图设置与操作 5.4.1 Merge Graphs(合并图) 5.4.2 Auto Correlate(自动定位瓶颈) 5.5 Transaction Report(事务报告) 5.6 SLA Report(系统阈值监控报告) 5.7 External Monitor(外部监控数据导入) 5.8 Cross with result(跨脚本横向比较) 5.9 生成测试报告 5.9.1 New Report(新建报告) 5.9.2 Reprt Templates(报告模板) 5.9.3 HTML报告 5.10 小结 实战篇 第6章 性能测试实战 6.1 计划测试 6.1.1 分析系统阶段 6.1.2 定义测试目标 6.1.3 明确定义概念 6.1.4 编写性能测试计划 6.1.5 编写性能测试方案 6.1.6 编写性能测试用例 6.2 搭建测试环境 6.2.1 测试平台评估 6.2.2 数据生成 6.2.3 测试环境搭建手册 6.3 创建脚本 6.3.1 用户注册 6.3.2 用户查询 6.3.3 用户看帖 6.3.4 用户回帖 6.4 创建场景 6.4.1 场景设计 6.4.2 负载监控 6.5 运行场景 6.5.1 场景运行Checklist 6.5.2 场景运行记录 6.6 分析性能数据 6.6.1 性能调优原理 6.6.2 前端性能分析 6.6.3 后端性能分析 6.7 性能测试报告 6.7.1 平台对比性能测试报告 6.7.2 Phpwind85性能分析报告 6.7.3 DiscuzX2 VS Phpwind85性能对比报告 6.7.4 Phpwind85验收指标性能测试报告 6.7.5 Phpwind85压力测试报告 6.8 小结 第7章 性能测试组织 7.1 性能测试团队 7.2 性能测试流程分工 7.3 配置管理 7.4 性能测试自动化 7.5 小结 第8章 高级脚本开发 8.1 AJAX
《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》结合了很多工作中的实际案例,图文并茂,既适合渴望了解性能测试的新人,也适合对性能测试有一定认识和经验的中、高级测试工程师。同时,《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》也可以作为高校开展性能测试课程的参考教材,让在校学生能对性能测试的本质和价值有一定的认识。 《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》是一本基于HP LoadRunner 11工具的指导用书,从性能测试原理到工具使用再到项目实施,全面介绍了性能测试的各个方面,其内容基本主线说明如下。 第一步(了解理论):磨刀不误砍柴工,打下基础;第二步(掌握工具):深入介绍LoadRunner 11工具三大部分(Virtual User Generator、Controller、Analysis)如何实现用户行为的模拟、性能指标的监控、负载的生成及后期的数据分析;第三步(项目实施):理论联系实际,介绍性能测试项目实施的流程和性能测试部门的组织管理;第四步(进阶提升):对一些当下流行的或比较特殊的协议和开发技巧通过真实案例进行介绍。 基础篇 第1章 性能测试基础 1.1 性能测试工程师的标准及挑战 1.1.1 性能测试工程师的考评指标 1.1.2 性能测试工程师的挑战 1.2 性能测试基础 1.2.1 性能定义 1.2.2 性能指标 1.2.3 单机与网络性能测试 1.2.4 性能测试的流程 1.2.5 性能测试招聘要求 1.2.6 性能测试学习阶段 1.3 性能分析与调优 1.3.1 性能分析及调优原理 1.3.2 常见系统性能瓶颈 1.3.3 性能测试的注意要点 1.4 小结 工具篇 第2章 LoadRunner综述 2.1 LoadRunner简介 2.2 LoadRunner工具组成 2.3 性能测试原理 2.4 自动化测试工具和性能测试工具的区别 2.5 协议分析 2.5.1 HTTP详细介绍 2.5.2 HTTP报文结构 2.5.3 HTTP请求 2.5.4 HTTP应答 2.5.5 HTTP捕获 2.5.6 HTTP回放 2.6 安装 2.6.1 在Windows下安装LoadRunner 2.6.2 安装Load Generator 2.6.3 附加组件 2.6.4 LoadRunner License 2.7 LoadRunner性能测试操作流程预览 2.8 小结 第3章 用户行为模拟 3.1 VuGen界面介绍 3.1.1 Tree图形化模式 3.1.2 脚本模式 3.1.3 Output Window 3.2 录制用户行为 3.2.1 录制流程 3.2.2 协议选择 3.2.3 录制选项 3.2.4 开始录制 3.2.5 插入命令 3.2.6 结束录制 3.2.7 回放验证 3.2.8 录制回放常见问题 3.3 脚本开发 3.3.1 Action简介 3.3.2 脚本如何注释 3.3.3 语言规则 3.3.4 如何使用模板 3.3.5 脚本的导入导出 3.3.6 脚本调试 3.4 通用选项(General Options) 3.4.1 Parameterization标签 3.4.2 Replay标签 3.4.3 Environment标签 3.4.4 Display标签 3.4.5 Correlation标签 3.5 运行设置(Run-Time Setting) 3.5.1 Run Logic 3.5.2 Pacing 3.5.3 Log 3.5.4 Think Time 3.5.5 Additional attributes 3.5.6 Miscellaneous 3.5.7 Speed Simulation 3.5.8 Browser Emulation 3.5.9 Preferences 3.5.10 Download Filters 3.5.11 Data Format Extensions 3.6 参数化 3.6.1 参数化的操作 3.6.2 Parameter List界面介绍 3.6.3 VuGen中的参数 3.6.4 Controller中的参数 3.6.5 同行取值(Same line as) 3.6.6 参数类型 3.6.7 数据向导(Data Wizard) 3.6.8 参数和变量 3.7 关联 3.7.1 关联原理 3.7.2 自动关联 3.7.3 手动关联 3.7.4 一边录制一边关联 3.7.5 关联函数web_reg_save_param_ex详解 3.7.6 关联函数web_reg_save_param_regexp详解 3.7.7 关联函数web_reg_save_param_xpath详解 3.

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小丫么小二郎~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值