[toc]
默认情况下,ReadyAPI 以单个 XML 文件来存储某个项目数据。当独自一人工作时,项目是方便管理的,但如果多个人同时编辑同一个项目,就可能会产生一些问题。为了更好的支持团队协作,将项目转换为 `Composite` (复合)项目,并分享项目到代码托管平台,如 `GitHub` 。ReadyAPI 支持从 `GitHub` 上直接导入项目。复合项目的数据被保存在多个文件中,因此可以多个人同时编辑项目(分别编辑不同的文件)。
# 复合项目
**新建**
将项目属性 *Composite Project* 设置为 true ,并保存该项目,可以将默认项目转换为复合项目。如有必要,请切换复合项目的版本。
**结构**
ReadyAPI 复合项目的文件夹结构如下:
<table class="aqTable" cellspacing="0" cellpadding="0">
<thead>
<tr>
<th class="aqTableHeader">内容</th>
<th class="aqTableHeader">存储位置</th>
</tr>
</thead>
<tbody>
<tr>
<td>API 定义</td>
<td rowspan="4">
<p>单独的文件夹。</p>
</td>
</tr>
<tr>
<td>SoapUI 测试套件</td>
</tr>
<tr>
<td>ServiceV 虚拟服务</td>
</tr>
<tr>
<td>报告配置</td>
</tr>
<tr>
<td>性能测试</td>
<td rowspan="2">
<p>项目根文件夹。</p>
</td>
</tr>
<tr>
<td>项目属性</td>
</tr>
<tr>
<td>安全测试</td>
<td>
<p>测试用例文件,或项目根文件夹。</p>
<p><span><img src="https://support.smartbear.com/readyapi/docs/_assets/commonImages/pay-attention.gif" class="aqInlineImg"> 存储位置取决于复合项目的版本。</p>
</td>
</tr>
</tbody>
</table>
**版本**
复合项目有两个版本:1.2 和 1.3 。修改项目属性 *Composite Project Format* 的值来切换复合项目的版本。
**1.3** 版本
ReadyAPI 将安全测试保存在项目根文件夹下的单个文件中。
>[warning]使用 1.3 版本(复合项目版本)前,确保所有团队成员的 ReadyAPI 软件版本高于 1.3 。1.2 版本(复合项目版本)则适用于任何 ReadyAPI 软件版本。
**1.2** 版本
ReadyAPI 将安全测试保存在测试用例文件中。
>[info]当您打开一个 1.2 版本格式的项目时,可以选择将其保存为 1.3 版本格式。
**兼容性**
...我是内容,看不见我...
**UI 界面修改与文件修改的关系**
见[附录1](#appendix_1)
# 集成 Git
ReadyAPI 提供了 [Git](http://git-scm.com/) 插件,方便与团队中的其他人共享你的复合项目。
**要求**
- 项目必须是一个复合项目。
- 需要专业版许可证才能分享项目。如果你没有许可证,可以在 SmartBear 官方网站或工具的 Help > License Manager 菜单申请 [专业版试用版](https://smartbear.com/product/ready-api/overview/#_ga=2.34698210.2117004648.1529914018-948303488.1528796554) 。
- 您的帐户必须能够访问要推送更改的代码仓库。
**使用插件**
插件 Wiki 介绍了插件的详细用法:
- [将项目添加到 Git 仓库](https://github.com/SmartBear/ready-git-plugin/wiki/Adding-Project-to-Git-Repository)
- [从 Git 仓库克隆项目](https://github.com/SmartBear/ready-git-plugin/wiki/Cloning-Project-From-Git-Repository)
- [从 Git 仓库中拉取远程更改](https://github.com/SmartBear/ready-git-plugin/wiki/Pulling-Changes-From-Git-Repository)
- [将更改推送到 Git 仓库](https://github.com/SmartBear/ready-git-plugin/wiki/Pushing-Changes-to-Git-Repository)
- [放弃更改](https://github.com/SmartBear/ready-git-plugin/wiki/Discarding-Changes)
- [查看远程更改](https://github.com/SmartBear/ready-git-plugin/wiki/Viewing-Remote-Changes)
- [查看和创建标签](https://github.com/SmartBear/ready-git-plugin/wiki/Viewing-and-Creating-Tags)
- [查看提交历史](https://github.com/SmartBear/ready-git-plugin/wiki/Viewing-Commit-History)
>[info]推荐开启以下两项 ReadyAPI 设置:
>
>1、菜单:**Preferences** > **WSDL** ,设置项:*Pretty print project files* 。
>2、菜单:**Preferences** > **UI**,设置项:*Normalize line-break* 。
>
>这将使得 ReadyAPI 项目文件对 Git 的 `auto-merge` 特性更加友好。
如果你在使用插件时遇到问题,请查看 [故障排除](https://github.com/SmartBear/ready-git-plugin/wiki/Troubleshooting) 主题,或者搜索 [SmartBear 社区](http://community.smartbear.com/#_ga=2.55263150.425108352.1529475399-149287080.1528966079) 获得解决方案。如果仍然无法解决,请联系 [SmartBear 支持团队](http://support.smartbear.com/message/?prod=ReadyAPI) 。
---
# 附录
## <span id="appendix_1">附录1</span>
**测试对象**
ReadyAPI 复合项目。
**测试环境**
软件版本:ReadyAPI 2.4.0
操作系统:Windows 7 64 位
**测试结果**
**操作:增、删、改项目自定义属性或项目属性**
操作位置:Projects 面板
涉及文件:
```
settings.xml
```
**操作:修改 REST Service B 的名称(现有A/B两个REST服务)**
操作位置:Projects 面板 > REST Service
涉及文件:
~~~
project.content
element.order
Rest Service A/element.order
文件夹重命名:Rest Service B -> Rest Service B1
~~~
**操作:修改 REST Service 的 endpoint**
操作位置:Projects 面板 > REST Service
涉及文件:
```
REST Service A/settings.xml
```
**操作:新增资源 Gaga**
操作位置:Projects 面板 > REST Service
涉及文件:
~~~
RSET Service A/Gaga.xml
project.content
~~~
**操作:修改资源 Haha 的名称**
操作位置:Projects 面板 > REST Service
涉及文件:
~~~
project.content
资源文件重命名:REST Service A/Haha.xml -> REST Service A/Haha_g.xml
~~~
**操作:修改资源 Haha 的内容(Path、方法、请求)**
操作位置:Projects 面板 > REST Service
涉及文件:
```
REST Service A/Haha.xml
```
**操作:新增/删除测试套件**
操作位置:SoapUI 面板 > TestSuite
涉及文件:
~~~
element.order
TestSuite-1文件夹(element.order、settings.xml等)
project.content(取决于测试套件下是否有测试用例,如果有的话)
~~~
**操作:修改测试套件名称**
操作位置:SoapUI 面板 > TestSuite
涉及文件:
~~~
修改:project.content
修改:element.order
重命名文件夹:TestSuite-1 -> TestSuite99
~~~
**操作:在已经新增的空测试套件 TestSuite-1基础上,新增第一个测试用例 TestCase-1**
操作位置:SoapUI 面板 > TestCase
涉及文件:
~~~
修改:project.content
修改:TestSuite-1/element.order
新增:TestSuite-1/TestCase-1.xml
~~~
**操作:重命名测试用例**
操作位置:SoapUI 面板 > TestCase
涉及文件:
~~~
修改:project.content
修改:TestSuite99/element.order
重命名文件:TestSuite99/TestCase-1.xml -> TestSuite99/TestCase88.xml
~~~
**操作:新增、修改、删除测试步骤**
操作位置:SoapUI 面板 > TestStep
涉及文件:
```
修改:TestSuite99/TestCase88.xml
```
**操作:新增、删除一个环境**
操作位置:Environments
涉及文件:
~~~
settings.xml
各资源文件
~~~
**操作:修改一个环境**
操作位置:Environments
涉及文件:
```
settings.xml
```
---
参考资料:
1. [ReadyAPI Documentation / Testing APIs / Teamwork](https://support.smartbear.com/readyapi/docs/testing/teamwork.html)
---
:-: --- 贡献者名单(排名不分先后) ---
:-: **材料**
:-: **编写**
李云
:-: **校验**
:-: **支持**
- 基础知识
- 属性
- 属性分类
- 属性扩展
- Get Data 对话框
- 断言
- 关于断言
- 使用断言
- 断言类型
- Response SLA
- Script
- Property Content Assertions
- Contains
- Equals
- Equals Binary
- JSONPath Count
- JSONPath Existence Match
- JSONPath Match
- JSONPath RegEx Match
- Message Content
- Not Contains
- XPath Match
- XQuery Match
- Compliance Assertions
- Swagger Compliance
- Schema Compliance
- HTTP Header Exists
- HTTP Header Equals
- JDBC Assertions
- 复制断言
- 术语
- 脚本
- 关于脚本
- 脚本编辑器
- JSONPath
- Projects
- SoapUI
- 测试步骤
- Groovy Script
- DataSource
- Conditional GoTo
- REST Request
- ReadyAPI
- 环境
- 关于环境
- 创建环境
- Rest Services
- Custom Properties
- JDBC Connections
- 团队协作
- 集成
- GitLab
- 第三方库
- Groovy 库
- Java 库
- 自定义ReadyAPI
- 首选项
- 全局属性
- ReadyAPI
- Code Templates
- JVM 设置
- 修改
- 实战指导
- 项目属性
- Groovy
- 代码片段
- 开发规范 v0.1
- 属性
- inbox
- FAQ
- 安装配置
- 复合工程
- 修改文件夹或文件名称