若望 發表於 2021-2-10 08:42:00

一站式测试平台:Metersphere本地开发环境搭建

<h1>背景</h1>
<p>最近公司要做一个测试平台,主要功能涉及了产品,开发和测试三方的业务联动。其实在业界已经有了很多类似的开源平台,例如阿里的云效,腾讯的tapd,还有很多其他的云测试平台。由于涉及到公司的信息安全问题,公司内部希望能够自研一款对内的测试平台,解决产研测一体化的问题。通过对市面上各种竞品调研,最终选定了metersphere这款测试平台进行二次开发。</p>
<p>由于需要对平台进行二次开发,所以基本都是利用源码的方式来安装运行(如果你需要进行二次开发,直接按照官网的文档快速部署即可)。</p>
<p><strong>Metersphere文档地址</strong>:https://metersphere.io/docs/dev_manual/</p>
<h1>运行环境说明</h1>
<h2>操作系统</h2>
<p>Ubuntu16</p>
<h2>源码版本</h2>
<p>使用的metersphere版本:dad8ad2be99b3f3b131dad88ca79a531b5e63d86&nbsp;</p>
<h2>环境依赖</h2>
<ul>
<li>
<p>jdk1.8(参考:Ubuntu搭建JDK)</p>
</li>
<li>
<p>maven(参考:linux下搭建maven)</p>
</li>
<li>
<p>node (参考:linux下node安装)</p>
</li>
<li>
<p>docker(参考:docker环境搭建)</p>
</li>
<li>
<p>mysql (参考:docker快速搭建mysql)</p>
</li>
<li>
<p>kafka(参考: docker搭建kafka)</p>
</li>
</ul>
<h2>其他</h2>
<p><span style="font-size: 14px">  以上所有环境都搭建在同一台机器上,包括metersphere的前后端代码</span></p>
<h1>安装&amp;运行Metersphere</h1>
<h2>下载源码</h2>
<div class="cnblogs_code">
<pre>#下载指定版本metersphere源码,最新版本可能要根据实际情况稍有改动<br>git clone https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">github.com/metersphere/metersphere.git</span>
<span style="color: rgba(0, 0, 0, 1)">git reset </span>--hard dad8ad2be99b3f3b131dad88ca79a531b5e63d86</pre>
</div>
<h2>安装依赖</h2>
<h3>安装前端依赖</h3>
<div class="cnblogs_code">
<pre>cd metersphere/<span style="color: rgba(0, 0, 0, 1)">frontend
#安装前端依赖<br>npm </span><span style="color: rgba(0, 0, 255, 1)">install<br>#构建dist<br></span><span style="color: rgba(0, 0, 0, 1)">npm run build</span></pre>
</div>
<h3>安装后端依赖</h3>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">sudo</span> <span style="color: rgba(0, 0, 255, 1)">mkdir</span> -p /opt/jmeter/<span style="color: rgba(0, 0, 0, 1)">
cd metersphere</span>/<span style="color: rgba(0, 0, 0, 1)">
npm </span><span style="color: rgba(0, 0, 255, 1)">install</span>
<span style="color: rgba(0, 0, 255, 1)">sudo</span> <span style="color: rgba(0, 0, 255, 1)">cp</span>-rf backend/src/main/resources/jmeter/bin/opt/jmeter/</pre>
</div>
<h3>配置Metersphere</h3>
<p>1)创建Metersphere目录</p>
<div>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">sudo</span> <span style="color: rgba(0, 0, 255, 1)">mkdir</span> -p/opt/metersphere/<span style="color: rgba(0, 0, 0, 1)">conf
</span><span style="color: rgba(0, 0, 255, 1)">sudo</span> <span style="color: rgba(0, 0, 255, 1)">mkdir</span> -p /opt/metersphere/logs</pre>
</div>
<p>2)添加Metersphere配置文件</p>
</div>
<div>输入:<em><strong>sudo vi /opt/metersphere/conf/metersphere.properties</strong></em>,添加如下内容:</div>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)"># 数据库配置
spring.datasource.url</span>=jdbc:mysql:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">localhost:3306/metersphere_dev?autoReconnect=false&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;characterSetResults=UTF-8&amp;zeroDateTimeBehavior=convertToNull&amp;useSSL=false</span>
spring.datasource.username=<span style="color: rgba(0, 0, 0, 1)"><strong>root<br># 这里写实际的mysql密码即可<br></strong>spring.datasource.password</span>=<strong><span style="color: rgba(128, 0, 128, 1)">123456</span></strong><span style="color: rgba(0, 0, 0, 1)">

# kafka 配置,node</span>-controller 以及 data-<span style="color: rgba(0, 0, 0, 1)">streaming 服务需要使用 kafka 进行测试结果的收集和处理
kafka.partitions</span>=<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
kafka.replicas</span>=<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
kafka.topic</span>=<span style="color: rgba(0, 0, 0, 1)">JMETER_METRICS
kafka.bootstrap</span>-servers=localhost:<span style="color: rgba(128, 0, 128, 1)">19092</span><span style="color: rgba(0, 0, 0, 1)">
kafka.log.topic</span>=<span style="color: rgba(0, 0, 0, 1)">JMETER_LOGS

# node</span>-<span style="color: rgba(0, 0, 0, 1)">controller 所使用的 jmeter 镜像版本
jmeter.image</span>=registry.fit2cloud.com/metersphere/jmeter-master:<span style="color: rgba(128, 0, 128, 1)">0.0</span>.<span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">

# 启动模式,lcoal 表示以本地开发模式启动
run.mode</span>=local</pre>
</div>
<p>3) 运行后端</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">#进入Metersphere后端目录
cd metersphere</span>/<span style="color: rgba(0, 0, 0, 1)">backend
#运行spring</span>-<span style="color: rgba(0, 0, 0, 1)">boot项目
</span><span style="color: rgba(0, 0, 255, 1)">sudo</span> mvn spring-boot:run</pre>
</div>
<p>如果遇到了如下报错,记得进入前端目录构建dist:&nbsp;<strong>npm run build</strong>(参照前面的安装前端依赖)</p>
<p><img src="https://img2020.cnblogs.com/blog/371763/202102/371763-20210206155518211-352533520.png" alt="" width="672" height="153" loading="lazy"></p>
<p>4)运行前端</p>
<p><em><strong>npm run serve</strong></em></p>
<p>5)浏览器访问:http://{机器ip}:8080</p>
<blockquote>
<p>账号:admin</p>
<p>密码:metersphere.io</p>
</blockquote>
<p>如果看到以下画面说明Metersphere搭建成功!&nbsp;</p>
<p><img src="https://img2020.cnblogs.com/blog/371763/202102/371763-20210206155948607-1403759964.png" alt="" width="886" height="460" loading="lazy"></p>
<p>&nbsp;到此Metersphere的开发环境搭建完毕,有需求的朋友们可以去二次开发了,前端用的是vue+elementUI,后端是java(spring-boot)</p>
<blockquote>
<p>博主:测试生财(一个不为996而996的测开码农)</p>
<p>座右铭:专注测试开发与自动化运维,努力读书思考写作,为内卷的人生奠定财务自由。</p>
<p>内容范畴:技术提升,职场杂谈,事业发展,阅读写作,投资理财,健康人生。</p>
<p>csdn:https://blog.csdn.net/ccgshigao</p>
<p>博客园:https://www.cnblogs.com/qa-freeroad/</p>
<p>51cto:https://blog.51cto.com/14900374</p>
<p>微信公众号:<strong>测试生财</strong>(定期分享独家内容和资源)</p>
<p><span class="cke_widget_wrapper cke_widget_inline cke_widget_image cke_image_nocaption" data-cke-widget-wrapper="1" data-cke-filter="off" data-cke-display-name="图像" data-cke-widget-id="0"><img src="https://img-blog.csdnimg.cn/img_convert/c46d15265a1aa0933e20e0c65face4f5.png" alt="" width="205" height="75" class="cke_widget_element" src="https://img-blog.csdnimg.cn/img_convert/c46d15265a1aa0933e20e0c65face4f5.png" data-cke-widget-data="{&amp;quot;hasCaption&amp;quot;:false,&amp;quot;src&amp;quot;:&amp;quot;https://img-blog.csdnimg.cn/img_convert/c46d15265a1aa0933e20e0c65face4f5.png&amp;quot;,&amp;quot;alt&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;width&amp;quot;:&amp;quot;205&amp;quot;,&amp;quot;height&amp;quot;:&amp;quot;75&amp;quot;,&amp;quot;lock&amp;quot;:true,&amp;quot;align&amp;quot;:&amp;quot;none&amp;quot;,&amp;quot;classes&amp;quot;:[]}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="image"><span class="cke_reset cke_widget_drag_handler_container"><img src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==" width="15" height="15" class="cke_reset cke_widget_drag_handler" title="点击并拖拽以移动" data-cke-widget-drag-handler="1"></span></span></p>
</blockquote>
<p></p><br><br>
来源:https://www.cnblogs.com/qa-freeroad/p/13780475.html
頁: [1]
查看完整版本: 一站式测试平台:Metersphere本地开发环境搭建