HttpRunner2.0技术架构与接口测试应用
HttpRunner接口自动化测试框架
HttpRunner接⼝⾃动化测试框架简介2018年python开发者⼤会上,了解到HttpRuuner开源⾃动化测试框架,采⽤YAML/JSON格式管理⽤例,能录制和转换⽣成⽤例功能,充分做到⽤例与测试代码分离,相⽐excel维护测试场景数据更加简洁。
在此,利⽤业余时间研究这个框架去实现接⼝⾃动化测试。
HttpRunner 是⼀款⾯向 HTTP(S) 协议的通⽤开源测试框架,只需编写维护⼀份 YAML/JSON 脚本,即可实现⾃动化测试、性能测试、线上监控、持续集成等多种测试需求。
主流接⼝⾃动化⼯具框架:从上图可知,技术选型⼀般会优先考虑Requests+Python和HttpRunner,Requests+Python在⾃动化测试总结分类⾥⾯有⽂章讲过,这⾥我们针对HttpRunner进⾏探索。
框架流程主要特性:继承的全部特性,轻松实现 HTTP(S) 的各种测试需求采⽤ YAML/JSON 的形式描述测试场景,保障测试⽤例描述的统⼀性和可维护性借助辅助函数(debugtalk.py),在测试脚本中轻松实现复杂的动态计算逻辑⽀持完善的测试⽤例分层机制,充分实现测试⽤例的复⽤测试前后⽀持完善的 hook 机制响应结果⽀持丰富的校验机制基于 HAR 实现接⼝录制和⽤例⽣成功能()结合框架,⽆需额外的⼯作即可实现分布式性能测试执⾏⽅式采⽤ CLI 调⽤,可与 Jenkins 等持续集成⼯具完美结合测试结果统计报告简洁清晰,附带详尽统计信息和⽇志记录极强的可扩展性,轻松实现⼆次开发和 Web 平台化环境安装:HttpRunner 是⼀个基于 Python 开发的测试框架,可以运⾏在 macOS、Linux、Windows 系统平台上。
HttpRunner ⽀持 Python 3.4 及以上的所有版本,推荐建议使⽤ Python 3.4 及以上版本。
使⽤pip命令安装:pip3 install httprunner 【因本⼈环境装有python两个版本,这⾥使⽤是python3.6版本,就使⽤pip3命令,如是python2.7版本的话,就⽤pip命令安装】安装完成后校验:如版本号正常显⽰,则说明安装正常。
软件系统集成方案
软件系统集成方案目录1. 内容描述 (3)1.1 背景与意义 (4)1.2 目的和范围 (5)1.3 定义和术语 (5)2. 集成架构设计 (7)2.1 系统架构概述 (8)2.2 集成模式选择 (10)2.2.1 分布式集成 (11)2.2.2 集中式集成 (12)2.3 集成架构图 (14)3. 集成方法论 (15)3.1 需求分析 (16)3.2 设计与开发 (18)3.4 部署与上线 (20)4. 技术选型 (22)4.1 编程语言 (24)4.2 数据库技术 (25)4.3 中间件技术 (26)4.4 安全策略 (27)5. 实施步骤 (28)5.1 项目启动会议 (30)5.2 需求收集与分析 (30)5.3 系统设计 (32)5.4 开发与实现 (33)5.5 测试与调试 (34)5.6 文档编写与培训 (37)5.7 上线与运维 (39)6.1 单元测试 (41)6.2 集成测试计划 (42)6.3 性能测试 (43)6.4 安全测试 (45)6.5 回归测试 (46)7. 风险管理 (48)7.1 风险识别 (49)7.2 风险评估 (50)7.3 风险缓解措施 (51)7.4 应急计划 (53)8. 运维管理 (54)8.1 监控与日志 (55)8.2 性能优化 (56)8.3 故障排除 (58)8.4 更新与升级 (58)9. 成功案例与经验分享 (60)9.1 案例一 (61)9.2 案例二 (63)9.3 经验总结 (65)10. 结论与展望 (66)10.1 方案总结 (67)10.2 未来发展趋势 (68)10.3 建议与展望 (70)1. 内容描述本文件阐述了(软件系统名称)软件系统的集成方案,旨在清晰地记录不同软件组件之间的交互方式、数据流向和接口定义,为系统集成、测试和维护提供技术依据。
系统整体架构:介绍软件系统的主要结构、功能模块以及各模块之间的关系。
集成组件:列出参与系统集成的所有软件组件,包括第三方软件、自研模块、API 接口等等,并简要描述其功能和职责。
接口测试框架httprunner使用自定义extentreports报告模板遇到的问题小结
接⼝测试框架httprunner使⽤⾃定义extentreports报告模板遇到的问题⼩结前置条件:httprunner版本:HttpRunner 3.0.1python版本:3.8运⾏环境:Mac⼀、很多⽂章⾥⾯都说http runner包⾥⾯⾃带了⾃定义的报告模板,但是这个版本没有,于是⽹上下载了⾃定义的extentreports报告模板运⾏加参数: --report-template reports/template/extent-theme-template_new.html报错: jinja2.exceptions.UndefinedError: 'dict object' has no attribute 'meta_data'解决⽅案:出现问题的原因是不同版本的httprunner,运⾏case的结果汇总的数据结构有些不同,需根据实际版本情况进⾏调整1.先根据httprunner对外提供的运⾏⽤例的接⼝runner.run(),查看testcase运⾏的结果汇总的数据结构from httprunner.api import HttpRunnerdef print_summary_result(path_or_tests):runner = HttpRunner(failfast=True,save_tests=True,log_level="INFO",log_file="test.log")summary = runner.run(path_or_tests)return summary2.根据运⾏的结果汇总的数据结构,修过extentreports报告模板的取值数据的字段信息,我遇到的情况是打印出来的结果的结构跟模板中的字段取值结构不同⼆、报告中⽆法加载css和js解决⽅案:下载对应的css和js⽂件到本地,然后在模板中引⽤1.在https:///anshooarora/extentreports-java/tree/master/dist下,下载对应的css和js⽂件到本地,放到项⽬中的指定⽬录下,如2.修过⾃定义的模板⽂件,修过如下。
httprunner使用总结
httprunner使⽤总结HttpRunner 概念HttpRunner 是⼀款⾯向 HTTP(S) 协议的通⽤测试框架,只需编写维护⼀份 YAML/JSON 脚本,即可实现⾃动化测试、性能测试、线上监控、持续集成等多种测试需求。
相关操作1. 参数提取(extract)和参数引⽤($var)# 第⼀个接⼝/api/get-token的响应结果为:{"success": true, "token":"ZQkYhbaQ6q8UFFNE"}# 提取 token,采⽤ content.token'extract':[{'token':'content.token'}]# token 作为提取后的参数名称,可以在后续使⽤ $token 进⾏引⽤'headers':{'token':'$token',"Content-Type": "application/json","device_sn": "FwgRiO7CNA50DSU",}2. 公共配置全局化{"config": {"name": "testcase description","variables": [],"request": {"base_url":"http://127.0.0.1:5000","headers": {"User-Agent":"python-requests/2.18.4","device_sn": "FwgRiO7CNA50DSU","Content-Type":"application/json"}}}}# 其中 name 为测试⽤例的名称,在测试报告中将作为标题3. debugtalk.py ⽂件中定义相关变量和函数import hashlibimport hmacimport randomimport stringSECRET_KEY = "DebugTalk"def gen_random_string(str_len):random_char_list = []for _ in range(str_len):random_char = random.choice(string.ascii_letters + string.digits)random_char_list.append(random_char)random_string = ''.join(random_char_list)return random_stringdef get_sign(*args):content = ''.join(args).encode('ascii')sign_key = SECRET_KEY.encode('ascii')sign = hmac.new(sign_key, content, hashlib.sha1).hexdigest()return sign4. 变量的申明(variables)、引⽤($var)和调⽤函数(${func($var)})# 申明变量:⽣成 15 位长度的随机字符串并赋值给 device_sn 的代码为:"variables": [{"device_sn": "${gen_random_string(15)}"}]# 引⽤变量:使⽤ $user_agent、$device_sn、$os_platform、$app_version 根据签名算法⽣成 sign 值的代码"json": {"sign": "${get_sign($user_agent, $device_sn, $os_platform, $app_version)}"}5. 数据驱动# 创建⽤户的接⼝中对 user_id 进⾏参数化,参数化列表为 1001~1004,并且取值⽅式为顺序取值"config": {"parameters": [{"user_id": [1001, 1002, 1003, 1004]}]}6. 测试运⾏# 运⾏单个测试⽤例( hrun 命令外加单个测试⽤例⽂件的路径)$ hrun filepath/testcase.yml# 运⾏多个测试⽤例使⽤ (hrun 命令外加多个测试⽤例⽂件的路径)$ hrun filepath1/testcase1.yml filepath2/testcase2.yml# 运⾏指定⽂件夹下所有的测试⽤例(使⽤ hrun 命令外加⽂件夹的路径):$ hrun testcases_folder_path# 测试⽤例在运⾏过程中,遇到失败时不再继续运⾏后续⽤例$ hrun filepath/testcase.yml --failfast# 显⽰指定⽇志级别以上的⽇志$ hrun tests/data/demo_parameters.yml --log-level debug7. 测试报告⽣成# 指定报告名称$ hrun docs/data/demo-quickstart-2.yml --html-report-name demo8. hook 机制,hook 函数定义在 debugtalk.py ⾥⽤例层,config 新增关键字 setup_hooks 和 teardown_hooks,为全局的,setup_hooks 在所有测试前执⾏,teardown_hooks 所有⽤例执⾏后执⾏⼀次。
Python_Httprunner接口测试+locust性能测试
Python_Httprunner接⼝测试+locust性能测试1、什么是接⼝?接⼝,Application Programming Interface(API)通俗的讲就是HTTP请求2、什么是? 接⼝测试测试组件间接⼝的⼀种测试。
主要⽤于检测外部系统与系统之间,系统内部各⼦系统的交互点。
很多前端和后端都是分离的,单独只从前端验证,远远不够,绕过前端太容易了,还需要从接⼝层⾯进⾏验证。
3、需要安装的模块:Requests是Python的⼀个第三⽅HTTP库,然后有可能是这个星球上最好⽤的http库了requests安装Windows: 打开cmd命令⾏,输⼊pip install requests,等待安装完成即可Linux: (建议使⽤Python3),终端中输⼊pip3 install requests,等待安装完成即可Mac: (建议使⽤Python3), sudo python3 -m pip install requests,等待安装完成即可验证是否安装成功:打开命令⾏,输⼊python,在python shell环境下输⼊import requests没有报错即安装成功4、requests的使⽤⼀个最简单的GET请求:组装请求:请求可能包含url,params(url参数),data(请求数据),headers(请求头),cookies等,最少必须有url发送请求,获取响应:⽀持get,post等各种⽅法发送,返回的是⼀个响应对象解析响应: 输出响应⽂本简单实类:# 导⼊requests包import requests# GET请求url = "" # 这⾥只有url,字符串格式# 2. 发送请求,获取响应res = requests.get(url) # res即返回的响应对象# 3. 解析响应print(res.text) # 输出响应的⽂本5、Python 接⼝测试类1(unittest、⽣成html报告)⽂件⽬录:test16、Python 接⼝测试类2(unittest、ddt、邮件发送、xlsx、⽣成html报告)⽂件⽬录:python_Interface-master7、Httprunner框架测试接⼝(json/yaml、⽣成html报告)官⽅使⽤⽂档:接⼝获取便捷:通过Charles获取到接⼝导出har⽂件,然后⽤命令转换成json⽂件转换:har2case apptest1.har 转换成JSON⽂件har2case apptest1.har -2y 转换成yaml⽂件Httprunner 的使⽤输⼊命令:hrun apptest1.jsonDEMO创建hrun --startproject demo1、全局变量"variables": {"url" : "https://" }2、引⽤参数关键字:$参数名$user_id3、缓存参数。
接口测试实施方案
接口测试实施方案一、背景介绍在软件开发过程中,接口测试是非常重要的一环。
接口测试是指对软件系统的接口进行测试,其目的是验证不同软件模块之间的通信是否正确、数据是否传输准确、接口是否稳定可靠。
接口测试的实施方案对于保障软件系统的质量和稳定性至关重要。
二、接口测试的重要性1. 验证接口的正确性:接口测试可以验证接口是否按照设计要求进行数据传输和交互,确保系统各个模块之间的通信正常。
2. 发现潜在的问题:通过接口测试可以发现潜在的数据传输错误、接口异常等问题,及时进行修复,避免问题扩大化。
3. 提高系统稳定性:接口测试可以帮助发现接口的稳定性问题,确保系统在各种情况下都能正常运行。
三、接口测试实施方案1. 确定接口测试范围:首先需要确定接口测试的范围,包括接口的数量、类型、涉及的模块等。
在确定范围的基础上,制定详细的测试计划。
2. 编写接口测试用例:根据接口测试的范围和要求,编写详细的接口测试用例,包括正常情况下的测试用例和异常情况下的测试用例。
3. 准备测试环境:在进行接口测试之前,需要准备好相应的测试环境,包括测试服务器、测试数据库等。
确保测试环境的稳定性和可用性。
4. 执行接口测试:按照编写的接口测试用例,执行接口测试,记录测试结果并及时反馈问题。
5. 分析测试结果:对接口测试的结果进行分析,包括发现的问题、问题的严重程度、修复建议等。
6. 问题修复和再测试:针对测试中发现的问题,及时进行修复,并进行再测试,确保问题得到有效解决。
7. 编写测试报告:根据接口测试的结果,编写详细的测试报告,包括测试的范围、测试用例、测试结果、问题分析和修复情况等。
四、接口测试的注意事项1. 确保接口测试的全面性和准确性,覆盖各种情况下的测试用例。
2. 注意接口测试的时机,尽量在系统开发初期就进行接口测试,及时发现和解决问题。
3. 对接口测试的结果进行充分的分析和评估,确保问题得到有效解决。
4. 接口测试需要和其他测试环节进行有效的衔接,确保系统整体的稳定性和质量。
测试框架学习之HttpRunner测试用例之用例分层设计(八)
测试框架学习之HttpRunner测试⽤例之⽤例分层设计(⼋)⼀、测试⽤例分层⽬的解决测试场景增多,导致接⼝定义描述的维护困难和繁琐问题。
例如,某个项⽬中存在三个测试场景(引⽤官⽹的⽰例)场景A:注册新账号(API_1 / 2)、登录新注册的账号(API_3 / 4 / 5)、查看登录状态(API_6);场景B:登录已有账号(API_3 / 4 / 5)、注销登录(API_7 / 8);场景C:注销登录(API_7 / 8)、查看登录状态(API_6)、注册新账号(API_1 / 2)。
常规⽤例设计⽤例分析场景A和场景C同时定义了接⼝(API_1 / 2 / 6)场景A和场景B同时定义了接⼝(API_3 / 4 / 5)场景B和场景C同时定义了接⼝(API_7 / 8)⽤例分析结果:出现反复定义同类接⼝,对于后续测试场景增加,接⼝定义描述的维护就会变得⾮常困难和繁琐⼆、测试⽤例分层设计⽤例封装出现重复代码块,将其封装为类或⽅法,然后在需要时进⾏调⽤,以此来消除重复。
同样地,我们也可以将项⽬的API进⾏统⼀定义,⾥⾯包含API的请求和预期响应描述,然后在测试场景中进⾏引⽤即可。
⽰意图如下所⽰如上图所⽰,场景A和场景C都包含了注册新账号(API_1 / 2)和查看登录状态(API_6),场景A和场景B都包含了登录已有账号(API_3 / 4 / 5),场景B和场景C都包含了注销登录(API_7 / 8)。
虽然我们已经将接⼝的定义描述抽离出来,避免了重复的定义;但是在实际业务场景中,某些功能(例如登录、注销)会在多个场景中重复出现,⽽该功能⼜涉及到多个接⼝的组合调⽤,这同样也会出现⼤量的重复。
模块化封装常⽤功能封装为模块(suite),只需要在模块中定义⼀次,然后就可以在测试场景中重复进⾏引⽤,从⽽避免了模块功能的重复描述具体地,我们可以约定将项⽬的所有模块定义放置在suite⽬录下,并在suite⽬录中按照项⽬的功能来组织模块的定义。
接口自动化测试练手项目
接口自动化测试练手项目1. 项目背景在软件开发过程中,接口自动化测试是非常重要的一环。
通过自动化测试,可以提高测试效率,减少人工测试成本,确保系统的稳定性和可靠性。
接口自动化测试练手项目旨在帮助测试人员熟悉接口自动化测试的流程和工具,提升他们的技能和能力。
2. 项目目标本项目的目标是编写一个接口自动化测试框架,能够对指定的接口进行自动化测试,并生成测试报告。
具体要求如下:•支持接口测试用例的编写和管理;•支持接口测试用例的执行和结果统计;•支持测试报告的生成和展示。
3. 项目技术选型为了实现项目的目标,我们选择以下技术进行开发:•编程语言:Python;•测试框架:Pytest;•接口请求库:Requests;•测试报告生成:Allure。
4. 项目结构项目的结构如下所示:project├── tests│ ├── test_case_1.py│ ├── test_case_2.py│ └── ...├── utils│ ├── api_client.py│ └── ...├── report│ ├── index.html│ └── ...└── pytest.ini•tests目录用于存放接口测试用例;•utils目录用于存放工具类和接口请求封装;•report目录用于存放测试报告;•pytest.ini为Pytest的配置文件。
5. 项目流程5.1 编写接口测试用例在tests目录下编写接口测试用例,一个测试用例对应一个Python文件。
每个测试用例文件中包含多个测试函数,每个测试函数对应一个接口测试场景。
import pytestfrom utils.api_client import APIClientclass TestAPI:def setup_class(self):self.client = APIClient()def test_case_1(self):# 测试代码def test_case_2(self):# 测试代码5.2 实现接口请求封装在utils目录下实现接口请求封装,使用Requests库发送HTTP请求,并处理请求和响应。
软件系统部署方案
软件系统部署方案目录一、内容概括 (2)1.1 编写目的 (3)1.2 背景介绍 (3)1.3 部署原则 (4)二、需求分析 (5)2.1 功能需求 (6)2.2 性能需求 (7)2.3 安全性需求 (8)2.4 可维护性需求 (9)三、环境准备 (11)3.1 硬件环境 (12)3.2 软件环境 (12)3.3 网络环境 (14)四、部署步骤 (15)4.1 服务器配置 (16)4.2 软件安装与配置 (18)4.3 数据库部署 (18)4.4 系统测试 (19)4.5 部署上线 (21)五、风险管理 (22)5.1 技术风险 (22)5.2 网络风险 (23)5.3 安全风险 (25)5.4 其他风险 (26)六、运维管理 (27)6.1 监控与日志 (28)6.2 故障排查与处理 (29)6.3 定期维护 (30)6.4 安全策略更新 (31)七、培训与支持 (32)7.1 用户培训 (33)7.2 技术支持 (35)7.3 售后服务 (36)八、总结与展望 (37)8.1 实施效果 (38)8.2 后续工作 (39)8.3 发展规划 (40)一、内容概括本文档旨在提供一个全面且详细的软件系统部署方案,以确保系统的顺利、高效部署,并满足业务需求。
方案涵盖了从前期准备到后期维护的各个阶段,包括系统评估、环境搭建、资源配置、安装与配置、测试、用户培训、上线以及后续监控与优化等关键步骤。
在系统评估阶段,我们会对现有系统进行全面检查,识别潜在的问题和挑战,为后续部署提供决策依据。
环境搭建环节,我们将根据系统需求选择合适的硬件和网络环境,并确保环境的稳定性和可扩展性。
资源配置部分,则会根据系统需求合理分配服务器、数据库等资源,以满足系统运行所需。
安装与配置阶段,我们将按照预定的软件版本和配置要求进行系统安装,并进行必要的配置,以确保系统的稳定性和性能。
测试环节将覆盖系统的主要功能,通过全面的测试来发现并修复潜在的问题,提高系统的可靠性和稳定性。
接口自动化测试各种框架的介绍与对比
接⼝⾃动化测试各种框架的介绍与对⽐⼀、⼀张图表告诉你接⼝⾃动化框架有哪些,他们之间有何区别:另外,现阶段流⾏推荐使⽤:Python+unittest+requests+HTMLTestRunner框架⼆、Java Rest-assured框架:Java Rest-assured 是使⽤代码来实现接⼝的请求,封装业务流程,对于公司的业务⽀持⽐较⾼,灵活度很强,可以通过代码的⽅式打造⾃⼰公司的接⼝⾃动化框架,上⼿有点难度,需要有Java 编程基础,才可以使⽤。
三、python+ Request框架:python+ Request 是使⽤代码来实现接⼝的请求,封装业务流程,对于公司的业务⽀持⽐较⾼,可以根据业务的灵活度来定制化开发接⼝框架,再加上Jenkins 就可以持续化集成。
上⼿有点难度,需要有Python 编码的基础,才可以使⽤。
四、Robot Framework框架:官⽹介绍机器⼈框架是⼀个通⽤的开放源码⾃动化框架,⽤于验收测试、验收测试驱动开发(ATDD)和机器⼈过程⾃动化(RPA)。
它具有易于使⽤的表格测试数据语法,并利⽤关键字驱动的测试⽅法.它的测试功能可以通过⽤Python或Java实现的测试库来扩展,⽤户可以使⽤与创建测试⽤例相同的语法从现有的测试库中创建新的更⾼级别的关键字。
1、它的优点:(1)关键字驱动,⾃定义⽤户关键字。
(2)⽀持测试⽇志和报告⽣成。
(3)⽀持系统关键字开发,可扩展性好。
(4)⽀持数据库操作。
2、它的缺点:接⼝测试⽤例写起来不简洁。
需要掌握特定语法。
*** Settings ***Library RequestsLibraryLibrary Collections*** Test Cases ***test_get_event_list # 查询发布会(GET请求)${payload}= Create Dictionary eid=1Create Session event http://127.0.0.1:8000/api${r}= Get Request event /get_event_list/ params=${payload}Should Be Equal As Strings ${r.status_code} 200log ${r.json()}${dict} Set variable ${r.json()}#断⾔结果${msg} Get From Dictionary ${dict} messageShould Be Equal ${msg} success${sta} Get From Dictionary ${dict} status${status} Evaluate int(200)Should Be Equal ${sta} ${status}总结:不考虑,没⼈愿意这么写接⼝⽤例。
jsonrpc2.0实现原理
一、概述JSON-RPC(JavaScript Object Notation - Remote Procedure Call)是一种轻量级的远程过程调用协议,基于JSON数据交换格式来传递调用信息和结果。
本文将介绍JSON-RPC 2.0的实现原理,包括协议格式、消息结构、错误处理以及示例代码。
二、协议格式1. JSON-RPC2.0协议采用了简洁易懂的格式,包括方法调用和响应两种类型的消息。
方法调用消息由客户端发送至服务器端,而响应消息则是服务器端对方法调用的回应。
2. 方法调用消息的格式如下:{"jsonrpc": "2.0","method": "add","params": [1, 2],"id": 1}其中,"jsonrpc"指定了JSON-RPC的版本,"method"表示调用的方法名,"params"包含了方法的参数,"id"用于标识此次调用。
3. 响应消息的格式如下:{"jsonrpc": "2.0","result": 3,"id": 1}其中,"jsonrpc"同样指定了JSON-RPC的版本,"result"包含了方法调用的返回结果,"id"与方法调用消息中的对应。
三、消息结构1. JSON-RPC2.0的消息结构非常简洁明了,既方便了消息的生成和解析,又保持了高效性和可扩展性。
2. 方法调用消息和响应消息都以JSON格式进行编码和解码,这样既方便了人类的阅读理解,也方便了计算机的解析处理。
3. 每个消息中都包含了"jsonrpc"字段,以表明采用的JSON-RPC协议版本;同时也包含了"id"字段,以便于在方法调用和响应之间进行匹配。
接口测试练手项目
接口测试练手项目摘要:1.接口测试简介2.接口测试练手项目的重要性3.项目一:接口测试基础4.项目二:接口测试工具5.项目三:接口测试实战6.项目四:接口测试进阶7.项目五:项目总结与展望正文:接口测试作为软件测试的一个重要环节,主要负责检查系统组件之间的交互是否正常。
在软件开发过程中,接口测试能够有效地发现和定位问题,提高系统的稳定性和可靠性。
为了帮助初学者更好地掌握接口测试技能,本文推荐五个练手项目,以提升大家的实践能力。
项目一:接口测试基础在这一阶段,主要学习接口测试的基本概念、原则和流程。
了解HTTP 协议、RESTful API 以及常见的接口测试方法,如GET、POST、PUT、DELETE 等。
此外,还需掌握如何编写测试用例、使用Mock 数据以及处理测试结果。
项目二:接口测试工具接口测试工具有助于提高测试效率。
在这一阶段,学习并掌握JMeter、Postman、Rest-Assured 等常见的接口测试工具。
了解这些工具的特点、使用方法和优缺点,以便在实际项目中选择合适的工具进行测试。
项目三:接口测试实战通过实际项目案例,学习如何将接口测试理论知识应用到实际项目中。
从需求分析、测试用例设计、测试执行到测试报告,全面了解接口测试的各个环节。
在此过程中,可能会遇到一些问题,如接口异常情况处理、测试结果分析等,需要大家积极探索和解决。
项目四:接口测试进阶在掌握基础知识和技能后,可以尝试学习一些高级技巧,如接口性能测试、持续集成与自动化测试等。
这些技巧能够帮助大家在更复杂的项目中更好地进行接口测试,提高整体测试质量。
项目五:项目总结与展望在完成所有项目后,回顾整个学习过程,总结自己在接口测试方面的收获和不足。
同时,为自己设定更高的目标,继续深入学习,提升自己的技能水平,为将来的职业发展奠定基础。
总之,通过这五个练手项目,初学者可以逐步掌握接口测试的知识和技能,为今后的工作打下良好的基础。
HttpRunner接口自动化测试框架--3.用例编写
HttpRunner接⼝⾃动化测试框架--3.⽤例编写HttpRunner 的测试⽤例⽀持两种⽂件格式:YAML 和 JSON。
JSON 和 YAML 格式的测试⽤例完全等价,包含的信息内容也完全相同。
在 HttpRunner 中,测试⽤例组织主要基于三个概念:测试⽤例集(testsuite):对应⼀个⽂件夹,包含单个或多个测试⽤例(YAML/JSON)⽂件测试⽤例(testcase):对应⼀个 YAML/JSON ⽂件,包含单个或多个测试步骤测试步骤(teststep):对应 YAML/JSON ⽂件中的⼀个 teststep,描述单次接⼝测试的全部内容,包括发起接⼝请求、解析响应结果、校验结果等。
本篇内容主要描述testcase 和 teststep 的编写格式和内容。
1.在⼀个测试⽤例⽂件中包含了两层变量空间作⽤域(本篇⽤yaml⽂件举例)config:作为整个测试⽤例的全局配置项,作⽤域为整个测试⽤例;test:测试步骤的变量空间,会继承或覆盖 config 中定义的内容;2.config中的参数详情config 参数详情参数是否必须格式详情name YES string测试⽤例的名称,在测试报告中将作为标题variables NO list of dict定义的全局变量,作⽤域为整个⽤例NO list of dict全局参数,⽤于实现数据化驱动,作⽤域为整个⽤例request NO dict request 的公共参数,作⽤域为整个⽤例;常⽤参数包括 base_url 和 headersrequest中参数详情参数 是否必须格式详情base_url NO String测试⽤例请求 URL 的公共 host,指定该参数后,test 中的 url 可以只描述 path 部分headers NO dict request 中 headers 的公共参数,作⽤域为整个⽤例output NO list整个⽤例输出的参数列表,可输出的参数包括公共的 variable 和 extract 的参数; 在 log-level 为debug 模式下,会在 terminal 中打印出参数内容debug 模式下,会在 terminal 中打印出参数内容3.测试步骤(teststeps)参数详情teststeps参数详情参数 是否必须格式详情name YES String测试步骤的名称,在测试报告中将作为测试步骤的名称request YES dict HTTP 请求的详细内容;可⽤参数详见官⽅⽂档variables NO list of dict测试步骤中定义的变量,作⽤域为当前测试步骤NO list从当前 HTTP 请求的响应结果中提取参数,并保存到参数变量中(例如token),后续测试⽤例可通过$token的形式进⾏引⽤NO list 测试⽤例中定义的结果校验项,作⽤域为当前测试⽤例,⽤于实现对当前测试⽤例运⾏结果的校验imes NO int重复执⾏测试⽤例的次数setup_hooks NO list在 HTTP 请求发送前执⾏ hook 函数,主要⽤于准备⼯作teardown_hooks NO list在 HTTP 请求发送后执⾏ hook 函数,主要⽤户测试后的清理⼯作。
中国电信IP城域网设备测试规范-汇聚交换机v2.0
附件4:企业秘密中国电信IP城域网设备测试规范(汇聚交换机)(V2.0)中国电信集团公司二零零六年一月目录1. 概述 (1)1.1范围 (1)1.2引用标准 (1)1.3缩略语 (2)2. 测试环境和仪表 (3)2.1测试环境 (3)2.2测试仪表 (3)3. 测试内容 (4)4. 二层交换功能测试 (4)4.1基本功能测试 (4)4.1.1 超长帧转发能力 (4)4.1.2 异常帧检测功能测试 (5)4.1.3 广播抑制功能测试 (6)4.2镜像功能 (6)4.2.1 端口镜像功能测试 (6)4.2.2 流镜像功能测试 (7)4.3生成树协议测试 (8)4.3.1 标准生成树测试 (8)4.3.2 快速生成树测试 (9)4.3.3 多生成树测试 (10)4.4VLAN堆叠功能测试 (11)4.4.1 基本功能 (11)4.4.2 扩展功能 (12)4.5端口聚合 (14)4.5.1 聚合链路数量测试 (14)4.5.2 聚合效率测试 (15)4.5.3 聚合链路收敛时间测试 (16)4.6二层组播功能测试 (17)4.6.1 UNTAGGED端口IGMP SNOOPING功能测试 (17)4.6.2 TAGGED端口IGMP SNOOPING功能测试 (18)4.6.3 组播组加入/离开时间测试 (19)4.7P RIV ATE V LAN功能测试 (20)4.8V LAN交换功能测试 (21)5. 访问控制和QOS功能 (22)5.1访问控制表方向性测试 (22)5.2二层访问控制表测试 (23)5.2.1 MAC地址访问控制表测试 (23)5.2.2 VLAN访问控制表测试 (23)5.2.4 SVLAN访问控制表测试 (25)5.3三层访问控制表功能测试 (26)5.3.1 IP地址访问控制表功能测试 (26)5.3.2 四层端口访问控制表功能测试 (26)5.4访问控制表数量及性能测试 (27)5.5业务分级 (28)5.5.1 基于VLAN ID的业务分级 (28)5.5.2 基于四层端口的业务分级 (29)5.5.3 SVLAN内外层标签802.1P优先级映射 (30)5.6优先级队列 (31)5.6.1 严格优先级队列 (31)5.6.2 轮询队列 (31)5.7速率限制 (32)5.7.1 入方向速率限制功能测试 (32)5.7.2 出方向速率限制功能测试 (33)5.7.3 速率限制颗粒度及精确性测试 (34)6. 转发性能测试 (35)6.1MAC地址学习速度 (35)6.2MAC地址表容量 (35)6.3最大VLAN数量测试 (36)6.4单端口吞吐量和时延测试 (37)6.5板内交换性能测试 (38)6.6板间交换性能测试 (39)6.7综合转发性能测试 (40)7. 可靠性和安全性 (41)7.1设备可靠性 (41)7.1.1 主控板和交换矩阵冗余 (41)7.1.2 电源冗余 (42)7.1.3 业务卡热插拔 (42)7.1.4 设备重启动时间 (43)7.2网络安全 (44)7.2.1 端口地址数量限制 (44)7.2.2 设备防ARP攻击测试 (45)7.2.3 设备防ICMP攻击测试 (45)7.2.4 设备防BPDU攻击测试 (46)8. 运行维护和网络管理 (47)8.1运行维护功能测试 (47)8.1.1 远程认证管理 (47)8.1.2 SSH登录测试 (48)8.1.3 日志记录 (48)8.1.4 DHCP Option82功能测试 (49)8.2.1 SNMPv1、SNMPv2支持测试 (50)8.2.2 SNMPv3支持测试 (50)8.2.3 SNMP访问地址限制 (51)8.2.4 MIB View安全访问控制功能测试 (52)8.2.5 SNMP Trap功能测试 (52)8.3管理信息库 (53)8.3.1 端口MIB的功能测试 (53)8.3.2 VLAN MIB的功能测试 (53)8.3.3 CPU利用率、内存占用率的功能测试 (54)8.3.4 资源管理信息功能测试 (54)8.3.5 ACL管理信息功能测试 (55)8.3.6 QOS的管理功能测试 (55)8.3.7 二层组播MIB (56)8.3.8 SVLAN MIB (56)中国电信IP城域网设备测试规范-汇聚交换机1. 概述1.1 范围本规范主要参考我国相关标准、RFC标准、国际电信联盟ITU-T相关建议以及《中国电信城域网优化改造指导意见》、《中国电信城域网设备技术规范》编制。
干货深度讲解APP结构,看完后你学会了?
⼲货深度讲解APP结构,看完后你学会了?本⽂节选⾃霍格沃兹测试学院内部教材我们要学习App结构,那么就是⼀定先了解APK包的结构。
什么是APKAPK 是 Android Package 的缩写,其实就是 Android 的安装包。
通过将 APK ⽂件直接传到 Android 模拟器或Android ⼿机中执⾏即可安装。
APK ⽂件其实是 zip 格式,但后缀名被修改为 apk,通过 Android Studio 可以看到 APK 内部的⽂件。
APK结构知道什么是 APK 之后,接下来再来看看 APK ⾥⾯的结构是怎么样的。
下⾯拿雪球 APK 来举例。
lib/ ⽬录存放的是⼀些 so ⽂件。
so ⽂件是⼆进制⽂件,⽤来兼容各种类型的 CPU。
Android 开发中,在打包发布应⽤时会选择应⽤适配的 CPU 架构平台,在引⽤第三⽅库时也遇到根据不同 CPU 架构引⼊相应的 so 包。
Android主要包括这⼏种 CPU 架构:armeabi、armeabi-v7a、arm64-v8a、x86、x86_64、mips,⼤多数情况下只需要⽀持armabi 与 x86 的架构即可。
不同的 CPU 架构决定了 app 可以运⾏在哪些设备上。
⽐如我们的⼿机设备⼀般来说⽤的是 arm 架构,⽽我们的模拟器⼀般来说是 x86 架构。
如果app 只⽀持 arm 架构的话,那么就只能安装在真机上,模拟器上安装就会不成功。
如果是两种架构都⽀持的话,那么就是真机和模拟器都可以安装了。
res/ ⽬录res ⽬录是⼯程资源⽬录,存放的是各种资源⽂件,包括界⾯布局,图⽚,字符串等。
assets/ ⽬录assets ⽬录⽤来存放配置⽂件。
classes(n).dex ⽂件DEX 编译 Java 的 Class ⽂件,⽣成 classes.dex ⽂件。
resources.arsc ⽂件resources.arsc ⽂件是编译后的⼆进制资源⽂件。
HttpRunner接口自动化测试框架--1.环境搭建
HttpRunner接⼝⾃动化测试框架--1.环境搭建HttpRunner 是⼀款⾯向 HTTP(S) 协议的通⽤测试框架,只需编写维护⼀份 YAML/JSON 脚本,即可实现⾃动化测试、性能测试、线上监控、持续集成等多种测试需求。
HttpRunner 是⼀个基于 Python 开发的测试框架,可以运⾏在 macOS、Linux、Windows 系统平台上。
⽬前已发布版本:HttpRunner 2.x 版本,1.x 版本
1.搭建httprunner环境:通过pip ⽅式安装
1 pip install httprunner
2.检查环境在 HttpRunner 安装成功后,系统中会新增如下 5 个命令:
httprunner:核⼼命令
ate: 曾经⽤过的命令(当时框架名称为 ApiTestEngine),功能与 httprunner 完全相同
hrun: httprunner 的缩写,功能与 httprunner 完全相同
har2case: 辅助⼯具,可将标准通⽤的 HAR 格式(HTTP Archive)转换为YAML/JSON格式的测试⽤例
httprunner、hrun、ate 三个命令完全等价,功能特性完全相同,个⼈推荐使⽤hrun命令。
运⾏如下命令,若正常显⽰版本号,则说明 HttpRunner 安装成功。
1 hrun -V # 正常显⽰版本号即可。
httprunner3.x详细教程六(httprunner的setup和teardown及。。。
httprunner3.x详细教程六(httprunner的setup和teardown及。
httprunner3.x详细教程六(httprunner的setup和teardown及hook)httprunner的setup和teardown可以在yml或者json⽂件中定义,按照3.x版本的推荐,建议⼤家在py⽂件中进⾏定义,unittest和pytest都可以定义setup和teardown,那么httprunner如何定义呢,下⾯我会介绍⼀下设置setup和teardown的两种⽅式。
**欢迎加⼊测试交流群:⾃动化测试-夜⾏者(816489363)进⾏交流学习QAQ** --成都-阿⽊⽊httprunner有两种setup和teardown的定义⽅式,⼀个是测试类级别,⼀个是测试步骤级别的定义。
测试类级别的setup和teardown第⼀种写法setup和teardown:#!/user/bin/env python# -*- coding: utf-8 -*-"""------------------------------------@Project : interfaceDemo@Time : 2020/8/20 13:47@Auth : chineseluo@Email : 848257135@@File : demo_baidu_request_test.py@IDE : PyCharm------------------------------------"""from httprunner import HttpRunner, Config, Step, RunRequest, RunTestCaseclass TestBaiduRequestTestCase(HttpRunner):def setup(self):print("运⾏于测试⽤例之前")def teardown(self):print("运⾏于测试⽤例之后")config = (Config("get user list").base_url("https://").verify(False))teststeps = [Step(RunRequest("get info").get("/").validate().assert_equal("status_code", 200))]if __name__ == "__main__":TestBaiduRequestTestCase().test_start()结果为:Process finished with exit code 0运⾏于测试⽤例之前PASSED [100%]2020-08-20 13:50:53.306 | INFO | httprunner.loader:load_dot_env_file:127 - Loading environment variables from D:\TestScriptDir\httprunner\interfaceDemo\.env ...D:\TestScriptDir\httprunner\interfaceDemo\logs\a3872c1b-dedf-4485-bd95-3f31947bfae0.run.log运⾏于测试⽤例之后第⼆种写法setup_class和teardown_class:#!/user/bin/env python# -*- coding: utf-8 -*-"""------------------------------------@Project : interfaceDemo@Time : 2020/8/20 13:47@Auth : chineseluo@Email : 848257135@@File : demo_baidu_request_test.py@IDE : PyCharm------------------------------------"""from httprunner import HttpRunner, Config, Step, RunRequest, RunTestCaseclass TestBaiduRequestTestCase(HttpRunner):@classmethoddef setup_class(cls):print("运⾏于测试⽤例之前")@classmethoddef teardown_class(cls):print("运⾏于测试⽤例之后")config = (Config("get user list").base_url("https://").verify(False))teststeps = [Step(RunRequest("get info").get("/").validate().assert_equal("status_code", 200))]if __name__ == "__main__":TestBaiduRequestTestCase().test_start()上⾯两种写法在unittest和pytest中是不⼀样的,setup_class是运⾏于测试类的前⾯,setup是运⾏与每个测试⽅法的前⾯,在httprunner好像不区分这两个⽅法。
httprunner-源码解析
httprunner-源码解析
这⾥只是做⼀个⼤概的解析,还有很多细节部分没有太过于关注
我们从cli.py开始进⾏解析
1、argparse.ArgumentParser 接受命令⾏的各种参数
[
argparse.ArgumentParser 主要是为了对httprunner进⾏命令⾏对操做
]
2、 httprunner进⾏初始化,初始化的参数从argarse传递进来
[
httprunner对主要代码在api.py中,在httprunner的__init__ 进⾏:
1、⽇志level的设置
2、定义unitest.TextTestRunner , unittest.TestLoader
3、初始化其他参数数据
]
3、开始运⾏⽤例
[
for path in args.testcase_paths :
runner.run(path,xxx)
进⼊到api.py httprunner的其中⼀个⽅法run
]
代码的核⼼部分还是在以上途中的run_tests的1、2中,这⾥利⽤到了
type动态创建类(元类)、动态增加属性、⾼阶函数、反射(debugtalk.py的加载func)、与unittest的很好的结合
我创建了⼀个简单的项⽬也尝试⽤httprunner来做⼀些简单的接⼝测试,确实⽐较好⽤,尤其可以⾃定义各种⽅法的情况下,更灵活的进⾏接⼝回归测试
在不修改代码的情况下,可以先⽤httprunner进⾏简单的接⼝的编写,进⾏相关数据回归,然后再针对⾃⼰的业务情况,对httprunner进⾏修改。
HttpRunner(2):YAML文件简介
HttpRunner(2):YAML⽂件简介
yaml⽂件简介:
Yet Another Markup Language :另⼀种标记语⾔。
yaml 是专门⽤来写配置⽂件的语⾔,⾮常简洁和强⼤,更直观,更⽅便,有点类似于json格式。
在⾃动化测试框架中,常应⽤于⾃动化测试过程,⽤来进⾏数据驱动的数据存储载体,如典型的httprunner
语法规则:
⼤⼩写敏感
使⽤缩进表⽰层级关系
不允许使⽤TAB 键来缩进,只允许使⽤空格键来缩进
缩进的空格数量不重要
使⽤"#"来表⽰注释
YAML⽂件⽀持的数据格式:
对象:键值对的集合,⼜称为映射(mapping)/ 哈希(hashes)/ 字典(dictionary)
数组:⼀组按次序排列的值,⼜称为序列(sequence)/ 列表(list)
纯量(scalars):单个的、不可再分的值
yaml⽂件⽰例:
1、对象类型
使⽤冒号(:)表⽰键值对(冒号后⾯要多个空格⽤来区分),同⼀缩进的所有键值对属于⼀个map
注:冒号后⾯要多个空格⽤来区分,格式为:name: ⼩王
2、数组
使⽤(-) 表⽰数组,同⼀缩进的所有项属于⼀个数组
3、纯量
根据下⾯纯量的例⼦,由上往下,纯量包含:字符串整数浮点数布尔值 Null(⽤~表⽰) 时间⽇期
其中:⽤~表⽰null ;时间、⽇期采⽤IS08601格式
4、对象、数组嵌套。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
You can find me here:
• Blog: https:// • GitHub: https:///debugtalk • T esterHome: https:///debugtalk
• 微信公众号:
DebugTalk
李隆 Leo Lee
ID :debugtalk
邮箱:mail@ 先后就职于:
• ⼯信部电⼦五所
• 阿⾥移动事业群(UC )
• ⼤疆创新
• 字节跳动
1、HttpRunner 项⽬背景(3min)
2、HttpRunner 核⼼特⾊(7min)
3、HttpRunner 开发历程回顾(3min)
4、HttpRunner 2.0 新特性解析(7min)
5、现场实践演⽰(15min)
6、再看 HttpRunner,新思路及演进⽅向(5min)
7、加⼊ HttpRunner 开源项⽬(3min)
8、Q & A(2min)
1、掌握 HttpRunner 功能特性和最佳实践,可在⼯作项⽬中⽴即投⼊使⽤;
2、理解 HttpRunner 设计思想和技术架构,掌握⼆次开发和平台化建设思路;
3、加⼊ HttpRunner 开源项⽬。
HttpRunner 项⽬背景
实现⾃自动化回归测试
性能测试脚本复⽤用
兼具持续集成、线上监控
辅助⼿手⼯工测试:⾃自定义⽣生成特定业务数据
少投⼊入
⾼高收益
⼯工具开发&维护
学习使⽤用成本
编写&录⼊入测试⽤用例例
测试⽤用例例管理理&维护
业务导向,快速落地
提⾼高投⼊入产出⽐比
⾃自动化测试
核⼼心指标测试⽤用例例数执⾏行行频率运⾏行行成功率编写、维护效率学习成本运⾏行行效率
运⾏行行便便捷性稳定性“If you cannot measure it,
you cannot improve it. ”
⼯具很多,但都只能满⾜部分需求
投⼊产出⽐不能满⾜预期
缺乏最佳⼯程实践的有效融合
调研结果
HttpRunner 核⼼特⾊
One-stop solution for HTTPS(S) testing.
充分复⽤开源项⽬
约定⼤于配置
配置⽂件组织测试⽤例(YAML/JSON
)
⼀次投⼊,多处复⽤
⾼度可扩展性 etc.
核⼼特⾊
HttpRunner 充分复⽤开源项⽬
借鉴优秀(开源)项⽬
debugtalk.py
测试⽤用例例模板语⾔言
(JSON/YAML
)
参数化机制
(parameters
)
环境变量量管理理(.env
)
测试⽤用例例分层管理理
conftest.py
借⼒⾏业标准
HAR har2case postman2case
swagger2case
export ⾃自动化平台录⼊入/⼿手⼯工编写
整合⽣态⼯具链
规范简洁重复迥异配置⽂件组织测试⽤例
(YAML/JSON
)
信息量量等价
⼀次投⼊,多处复⽤⾃自动化测试 YAML/JSON 性能测试
持续集成线上监控
⽣生成测试数据数据驱动引⼊入并发机制实现命令⾏行行(CLI )调⽤用
⾼度可扩展性
更多特性
抓包录制 & ⽣生成⽤用例例Postman 转换⽣生成⽤用例例Swagger 转换⽣生成⽤用例例YAML/JSON ⽤用例例格式
测试⽤用例例分层机制
数据驱动机制
测试⽤用例例分组执⾏行行控制setup & teardown hooks热加载机制(debugtalk.py)性能测试CLI 调⽤用可扩展测试报告(Jinja2)
JSON Schema
…
加载环境变量量(.env)
不仅仅是⾃动化测试⼯具通⽤的⾃动化测试
解决⽅案
打造接⼝口⾃自动化测试⽣生态基于 HttpRunner 的开源接⼜测试平台:• HttpRunnerManager
• FastRunner
• SECO
• testcenter
• ApiT estWeb
融合最佳⼯程实践
不⽌于此
HttpRunner 开发历程回顾
1.X 版本
•参数化数据驱动机制(第⼆版)•实现 hook 机制
•重构 locusts 2.X 版本
•规范化版本管理(Semantic Versioning)•测试⽤例分层机制(第⼆版)
•测试⽤例(集)格式(v2)
•模板化脚⼿架
•惰性解析器
•模块化拆分(Pipeline)
•脚本参数异常检测机制
0.X 版本
•单元测试框架
•项⽬基础框架
•确定测试⽤例(集)描述⽅式(v1)
• YAML/JSON 测试⽤例中实现 Python 调⽤•集成 Locust 实现性能测试
•实现热加载机制(debugtalk.py)
•结果校验机制
•结果校验解析器(JSON/XML/HTML)•测试⽤例分层机制(第⼀版)
•通过 skip 机制实现对测试⽤例的分组执⾏控制•实现参数化数据驱动机制(第⼀版)
HttpRunner 2.0 新特性解析
规范化版本管理(Semantic Versioning )
测试⽤例(集)格式(v2)
测试⽤例分层机制(第⼆版)
模板化脚⼿架
函数惰性解析机制 模块化拆分(Pipeline
)
脚本参数异常检测机制 etc.
重点升级
规范化 易易⽤用性 性能优化
规范化版本管理Semantic Versioning
HttpRunner 将采⽤ MAJOR.MINOR.PATCH 的版本号机制:
MAJOR: 重⼤版本升级并出现前后版本不兼容时
加 1
MINOR: ⼤版本内新增功能并且保持版本内兼容
性时加 1
PATCH: 功能迭代过程中进⾏问题修复(bugfix)
时加 1
测试⽤例(集)格式(v2)
(第⼆版)
•测试⽤例(testcase)应该是完整且独⽴的,每条测试⽤例应该是都可以独⽴运⾏的
•测试⽤例是测试步骤(teststep)的 有序 集合,每⼀个测试步骤对应⼀个 API 的请求描述•测试⽤例集(testsuite)是测试⽤例的 ⽆序 集合,集合中的测试⽤例应该都是相互独⽴,不
存在先后依赖关系的;如果确实存在先后依赖
关系,那就需要在测试⽤例中完成依赖的处理
测试⽤例分层机制
(第⼆版)
API
testcase T estsuite
模板化脚⼿架
函数惰性解析机制
模块化拆分(Pipeline)遵循 Unix 哲学“Write programs that do one thing and do it well.”
“Write programs to work together.”
prepare
loader
parser
initializer
runner
report
现场实践演⽰
案例介绍
⽹网址:https://
覆盖功能场景:
•登录系统
•创建⽂文档
•设置⽂文档标题
•安装 HttpRunner
•脚⼿架⽣成项⽬
•录制接⼜,⽣成 HAR ⽂件
•使⽤ HAR ⽣成 YAML/JSON 测试⽤例 •环境变量配置
•处理参数关联机制,成功运⾏脚本 •参数化配置
•测试⽤例分层
•数据驱动
•性能测试演⽰
•持续集成配置(Jenkins)
•测试数据⽣成(命令⾏、Jenkins)演⽰流程完整⽰例代码
再看 HttpRunner,新思路及
演进⽅向
更多的测试⽤例⽣成⽅式
扩展⽀持更多协议
测试⽤例 Tag 分组执⾏控制
整合更多测试类型(参考 QTA)
测试⽤例(脚本)单步调试功能
⽀持更多编程语⾔
运⾏环境前端化
⽀持更多配置化语⾔
etc.
更多的测试⽤例
⽣成⽅式
Apache Thrift ™
扩展⽀持更多协议
RPC
测试⽤例 Tag 分组执⾏控制
testcase 1
tag A
tag B testcase 2
tag A
tag C
testcase 2
tag B
tag C
$ hrun --tags A $ hrun --tags B
✔✘
✘
✔
✔✔
⽀持更多编程语⾔
整合更多测试类型HttpRunner Framework iOS driver Android driver Web driver HTTP(S) driver WebSocket driver Electron driver Mac/PC
⽀持更多配置化语⾔
加⼊ HttpRunner 开源项⽬
TTF 项⽬孵化
招募核⼼开发者和项⽬成员
进阶路线
重度⽤用户参与 issue 讨论提交 bugfix PR新特性开发参与项⽬目规划设计收获成长
更更⼴广阔的视⻆角理理解接⼝口测试以码会友,提升代码能⼒力力亲⼿手打造⾏行行业级测试框架
DebugTalk HttpRunner
Thanks。