设为首页 收藏本站
查看: 1265|回复: 0

[经验分享] openstack开发环境与代码测试

[复制链接]

尚未签到

发表于 2015-4-12 12:41:16 | 显示全部楼层 |阅读模式
  一、openstack单组件开发环境
  1、Python虚拟环境搭建
  主要参考文献:
  https://virtualenv.pypa.io/en/latest/virtualenv.html
  说明:Python虚拟环境主要是一个与系统中Python第三方库相对应的隔离环境,可以在这个虚拟环境中安装程序及依赖库而不会对系统中的库产生影响。所以,我们可以先搭建Python虚拟环境,然后将openstack的组件安装到虚拟环境中,在虚拟环境中进行开发和测试!
  安装:



yum install python-virtualenv   #centos系统下

pip install virtualenv          #使用pip工具安装
  创建和使用虚拟环境:



virtualenv virtenv              #创建虚拟环境,virtenv为虚拟环境目录
source virtenv/bin/activate     #启动虚拟环境,命令行提示符会多出"(virtenv)"表示进入虚拟环境
pip install ...                 #在虚拟环境中安装程序...
deactivate                      #退出虚拟环境
  虚拟环境目录:
  共包含bin、include、lib、lib64,全部都是对/usr目录下对应文件夹的虚拟映射。
  注意事项:
Python可执行文件头#!后如果列出具体的Python路径,则指明了某个环境,如果要让其可以跨虚拟环境,则可以指定为#!/usr/bin/env python  
  2、openstack单组件开发环境具体搭建步骤
  1)使用git clone 下载源码库
  2)在源码库目录中建立Python虚拟环境
  3)注意修改组件的配置文件,将可执行脚本拷贝到虚拟环境的bin目录中
  4)安装组件依赖及组件



pip install -r requirements.txt
pip install -r test-requirements.txt
cp 源码库中组件源代码 虚拟环境site-packages目录    #或者使用python setup.py ...安装组件
  5)运行组件源代码中已有的单元测试案例,另外还可以自己编写测试案例



python -m testtools.run xxx
  说明:以上步骤基本遵循openstack官方文档和代码的说明,具体细节有所差异,在openstack的每个组件的开发者文档(http://docs.openstack.org/developer/openstack-projects.html)中均有说明如何搭建开发环境和做测试,openstack实际上已经将以上步骤写成脚本,可以直接运行,但是考虑到网络下载的原因,所以采用以上分步进行的方式,方便差错。官方在这方面的主要说明文献:https://wiki.openstack.org/wiki/Testing#Unit_Tests (其中使用了tox测试工具,tox可以将工程和指定依赖包部署到虚拟环境中并运行你设置的所有测试案例,相当于模拟了工程实际部署后的测试情况,主要参考文献:https://testrun.org/tox/latest/index.html )
  
  二、openstack集成开发环境

  1、使用packstack或devstack部署完整的openstack平台环境
  2、openstack集成测试  
  2.1 推荐方法
  1)将待测试组件的可执行启动脚本拷贝到组件虚拟环境的bin目录下
  2)停掉平台中原来运行的待测试组件
  3)进入组件虚拟环境,执行待测组件的启动脚本,此时可以在终端运行虚拟环境中的待测组件程序
  4)在平台中进行操作和测试
  2.2 粗糙方法
  利用软连接将系统原来的模块替换成自己开发的模块。其中,后台服务模块如nova、cinder、glance等都可以直接使用,但是前端如xxxclient及openstack-dashboard则不能使用(本人亲测时出现模块导入问题!)。
  说明:基本参考了openstack官方的方案,官方文档中这部分主要说明: https://wiki.openstack.org/wiki/Testing#IntegrationTests ( 其中主要使用了DevStack进行openstack的安装,然后在实际运行环境中进行代码的测试!)
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-56281-1-1.html 上篇帖子: openstack基础知识汇总 下篇帖子: openstack running
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表