接口测试 接口自动化测试项目的一些知识整理

bingbing · October 29, 2016 · Last by stone9159 replied at November 19, 2020 · 1706 hits

分享一下做过的接口测试的项目知识,简单的整理了下,以后有时间会把其他的也整理下,大家有好的建议或者疑问的可以直接回复哦。
里面的设计和具体的实现都存在不同程度的缺陷。以下都是实现完成并运用于项目中的。

Python Web Restful API 接口测试项目知识整理归纳

项目工具选择

使用工具: Robot Framework + Jenkins + Gitlab + Jira
Robot Framework: 关键字驱动自动化测试框架
Python Unit Test: Python 内置的单元测试框架
Gitlab : 版本控制软件
Jenkins: 持续集成软件
Jira: 缺陷管理工具,储存测试用例和 bug

自动化测试的工作流水线:

1.使用 Robot Framework + Requests
Jenkins run job -> Sync latest code from Git lab-> Run automation(Robot Framework) -> Update case status in Jira(Use Jira rest API) -> show report on Jenkins

Details:
(1) Jenkins 配置:
新建 Job , 绑定 Gitlab 项目地址,设置运行模式并选择 run .sh 文件, 如果是用 robot, .sh 文件 export 环境变量后,pybot suite1 suite2.....
(2) Gitlab: 新建项目,本地安装 Git Client
(3) Jira 相关配置:
需要确认项目的 ProjectId 和 Test Cycle, Test Cycle 可以由 API 自动创建
自动化工程工程中对 Jira 的相关操作,必要的参数需要从 Jira rest api 中获取

(4) Robot Framework 搭建自动化测试工程
测试用例管理: Feature
-Test Suite
-Test Case
封装自定义关键字:Module 名字必须和 Class 相同, 关键字作为每一个方法存在,确认方法所需的返回值和输入的参数。
配置并使用自定义的 Library,再 global.txt 中添加新增的 Library 地址。

与 Jira 整合: 编写更新测试用例状态的 keyword,在每个 case 中的 tear down 中使用,执行每条 case 更新结果。
与 Jenkins 整合: Jenkins 需要安装 robot 插件并配置在 “增加构建后步骤” 选择 “Publish Robot Framework test results”

2.使用 Python Unit Test + HTMLTestRunnner

1-3 与上述几乎相同
Python Unit Test 搭建自动化测试框架工程
测试用例管理

Feature ----- Package
-Test Suite ----- Module
-Test Case List ----- Class
-Test Case ----- Method

参数模块
使用 Json 定义参数数据模板或使用 excel 存贮参数,选择不同实现方式不同
{
"display_name": {
"method": "randomString",
"arguments": {
"supported_string_list": [
"letters",
"digits",
"punctuation"
],
"min_length": "4",
"max_length": "30"}
},
"email": {
"method": "randomEmail",
"arguments": {
}

"password": {
"method": "randomString",
"arguments": {
"supported_string_list": [
"letters",
"digits",
"punctuation"
],
"min_length": "6",
"max_length": "30"}
},
"permissions": [],
"roles": {
"method": "randomParamsList",
"arguments": {
"parameters_list": "roles",
"accept_empty": "True"}
}
}

Case Suite 和 Jira 中 case 关联方式, 实现方式有很多种,以下列举几个示例:
1.Unit 中 method name 和 Jira case 关联 testOS666DemoCase1
2.建立 case 和 method 映射关系 {“OS-666”:” testMethodName”}

运行方式:
根据不同需求筛选 case 组成 case suite,用 HTMLTestRunner.HTMLTestRunner 运行测试用例套件。

共收到 7 条回复 时间 点赞

良好的排版才能凸显文章的价值。

有点难以理解,小白表示看不懂

#1 楼 @Lihuazhang 当时是在 word 中整理的比较快,有时间的话更系统的整理下,加上结构图和代码等。还有很多项目的知识都在整理中,以后慢慢地弄个小系列出来,基本都是较小项目中自动化测试的解决方案和在一些在工作中觉得对一些问题的比较好的处理方式等。

#2 楼 @jamesparagon 写的比较快,整理的都是一些 key point。 如果没有用过这些工具的话,看起来可能是会比较吃力。有时间我会把这个帖子上的按照流程逐步整理下,相关的基础的用法就不写了,网上搜索都有,实践起来也不难,自己的本子按照流程都能吧这个流水线做起来。

能给下源码的地址么?学习下

6Floor has deleted

这么牛逼的一个论坛,为什么没有人好好弄个排版呢?

如果出现 bug,在自动创建 bug 的时候,怎样判断 bug 是否已存在呢?

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up