自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

【博文推薦】如何進行 OpenStack 的性能測試及平臺功能性測試

云計算 OpenStack
社區(qū)對OpenStack平臺功能性的測試工具采用Tempest,性能測試采用Rally。本篇博文對Rally、Tempest是什么;如何安裝Rally、Tempest的詳細過程進行介紹。下面就讓我們一起學習。

 

  本博文出自51CTO博客再生細胞博主,有任何問題請進入博主頁面互動討論!

博文地址:http://wangtianfa.blog.51cto.com/5281093/1621797

OpenStack平臺功能性測試工具Tempest安裝

 

一、OpenStack Rally 性能測試

1.注意點

在測試nova,在配置文件里面如果不指定網(wǎng)絡(luò)id,那么默認是外網(wǎng)的網(wǎng)絡(luò)(該網(wǎng)絡(luò)是共享的),如果想要指定網(wǎng)絡(luò),那么該網(wǎng)絡(luò)必須是共享的狀態(tài),否則將會報錯:無法發(fā)現(xiàn)網(wǎng)絡(luò)。如果測試多于50臺的虛擬機需要修改默認值,因為默認值是有限制的可用如下命令查看:

  1. [root@rally nova]# nova absolute-limits 
  2. +-------------------------+---------+ 
  3. | Name | Value | 
  4. +-------------------------+---------+ 
  5. | maxServerMeta | 128 | 
  6. | maxPersonality | 100 | 
  7. | maxImageMeta | 128 | 
  8. | maxPersonalitySize | 10240 | 
  9. | maxTotalRAMSize | 5120000 | 
  10. | maxSecurityGroupRules | 20 | 
  11. | maxTotalKeypairs | 100 | 
  12. | totalRAMUsed | 58960 | 
  13. | maxSecurityGroups | 10 | 
  14. | totalFloatingIpsUsed | 0 | 
  15. | totalInstancesUsed | 24 | 
  16. | totalSecurityGroupsUsed | 1 | 
  17. | maxTotalFloatingIps | 10 | 
  18. | maxTotalInstances | 200 | 
  19. | totalCoresUsed | 51 | 
  20. | maxTotalCores | 500 | 
  21. +-------------------------+---------+ 

修改默認值可以在界面,管理員->默認值,進行修改;其次可以在運行nova-api服務(wù)的節(jié)點上修改配置文件nova.conf

#p#

2.安裝rally:

  1. [root@rally nova]#git clone https://github.com/stackforge/rally.git
  1. [root@rally rally]# /usr/bin/easy_install pip (安裝pip,有就不需要裝了) 

 

  1. [root@rally rally]# mkdir /root/.pip 
  2.  
  3. [root@rally rally]# vim /root/.pip/pip.conf (設(shè)置pip源,加快安裝速度) 
  4. [global]
  1. [root@rally nova]#pip install -U virtualenv 安裝虛擬環(huán)境(可裝可不裝,一般為了系統(tǒng)的干凈還是裝個虛擬環(huán)境)
  1. [root@rally nova]#virtualenv .venv
  1. [root@rally nova]#. .venv/bin/activate
  1. [root@rally nova]#yum install gcc-c++ (安裝編譯工具)
  1. [root@rally nova]#cd rally
  1. [root@rally rally]#./install_rally.sh 
  2. .... 

======================================================================
Information about your Rally installation:
* Method: system
* Database at: /var/lib/rally/database
* Configuration file at: /etc/rally
======================================================================

安裝完成,數(shù)據(jù)庫的配置這里暫時沒做。

創(chuàng)建一個隨便命名的.json格式文件:

  1. [root@rally rally]# : : 
  2. [root@rally rally]# rally deployment create --file=existing.json --name=existing
    +--------------------------------------+----------------------------+----------+------------------+--------+
    | uuid | created_at | name | status | active |
    +--------------------------------------+----------------------------+----------+------------------+--------+
    | 15ef811a-6460-407c-b391-c0f435f1ae54 | 2015-03-05 10:09:36.468176 | existing | deploy->finished | |
    +--------------------------------------+----------------------------+----------+------------------+--------+
    Using deployment: 15ef811a-6460-407c-b391-c0f435f1ae54
  1. [root@rally rally]# rally deployment check 
  2. keystone endpoints are valid and following services are available: 
  3. +------------+-----------+-----------+ 
  4. | services | type | status | 
  5. +------------+-----------+-----------+ 
  6. | ceilometer | metering | Available | 
  7. | cinder | volume | Available | 
  8. | cinderv2 | volumev2 | Available | 
  9. | glance | image | Available | 
  10. | keystone | identity | Available | 
  11. | neutron | network | Available | 
  12. | nova | compute | Available | 
  13. | nova_ec2 | ec2 | Available | 
  14. | novav3 | computev3 | Available | 
  15. +------------+-----------+-----------+ 

#p#

如此便可繼續(xù)往下進行OpenStack基準測試了。

舉個測試啟動虛擬機的例子:boot.json文件內(nèi)容如下:

doc/samples/tasks/scenarios/nova/boot.json

  1. [root@rally nova]# cat boot.json 
  2. "NovaServers.boot_server": [ 
  3. "args": { 
  4. "flavor": { 
  5. "name""m1.large" 
  6. }, 
  7. "image": { 
  8. "name""Windows_Server_2008R2_SP1_Standard_64bit" 
  9. }, 
  10. "nics":[{"net-id""c7048568-c966-4d57-a927-90dd8830fb96"}],(默認是沒有這行的) 
  11. }, 
  12. "runner": { 
  13. "type""constant"
  14. "times"100, (測試次數(shù)100) "concurrency"2 (并發(fā)數(shù)) 
  15. }, 
  16. "context": { 
  17. "users": { 
  18. "tenants"3
  19. "users_per_tenant"2 

  20. }
  1. [root@rally nova]# . /root/rally/.venv/bin/activate 
  2. [root@rally nova]# rally -v task start boot.json(/root/rally/doc/samples/tasks/scenarios/nova這是當前的目錄) 

OpenStack Rally 性能測試

以上的圖是測試結(jié)果。

相關(guān)鏈接:https://wiki.openstack.org/wiki/Rally

https://rally.readthedocs.org/en/latest/tutorial/step_0_installation.html

https://rally.readthedocs.org/en/latest/tutorial/step_1_setting_up_env_and_running_benchmark_from_samples.html

 

#p#

社區(qū)對OpenStack平臺功能性的測試工具采用Tempest,性能測試采用Rally。

二、OpenStack平臺功能性的測試工具Tempest

1、什么是Tempest

1).Tempest

  • api # API的測試集
  • cli # OpenStack的命令行工具測試集
  •  common # 一些公共的工具類和函數(shù)
  •  scenario # 對OpenStack的常用場景進行測試,包括基本的啟動VM,掛載volumn和網(wǎng)絡(luò)配置等
  •  services # tempest自己實現(xiàn)的OpenStack API Client,自己實現(xiàn)是為了不讓一些bug隱藏在官方實現(xiàn)的Client里面。
  • stress # 壓力測試集,利用multiprocessing來啟動多個進程來同時對OpenStack發(fā)起請求。
  •  thirdparty # EC2兼容的API測試集
  •  whitebox # 白盒測試集,主要是對DB操作,然后發(fā)起請求,然后比對結(jié)果

2).tempest是通過nose驅(qū)動的,python語言編寫,使用testtools和testresources等幾個測試工具庫

3).tempest.test.BaseTestCase,BaseTestCase聲明config屬性,讀取配置文件

4).tempest.test.TestCase聲明很多工具函數(shù),供調(diào)用

5).每個測試可以分別測試JSON格式和XML格式

#p#

2.安裝Tempest

下載源碼

  1. git clone https: 

查看python版本

  1. python --version 

如若是2.6執(zhí)行如下,2.7不需要

  1. wget https://pypi.python.org/packages/source/u/unittest2/unittest2-0.5.1.tar.gztar zxvf unittest2-0.5.1.tar.gz 
  2. cd unittest2-0.5.1python setup.py install 

查看xslt-config命令是否存在

  1. [root@controller001 ~]# whereis xslt-config 
  2. xslt-config: /usr/bin/xslt-config(代表存在) 

如果沒有執(zhí)行安裝命令

  1. [root@controller001 ~]#yum install libxslt-devel 

檢查是否有g(shù)cc環(huán)境,沒有則安裝

  1. [root@controller001 ~]#yum install gcc-c++ 

安裝一些相關(guān)的包

  1. [root@controller001 ~]#yum install libevent-devel openssl-devel libffi-devel python-devel 
  2.  
  3. [root@controller001 ~]#/usr/bin/easy_install pip 

進入tempest目錄進行安裝(沒有安裝虛擬機環(huán)境)

  1. [root@controller001 ~]#python setup.py install 

(可選)如果不想將tempest安裝在真實環(huán)境中那么執(zhí)行如下命令

  1. [root@controller001 ~]#pip -U virtualenv 
  2.  
  3. [root@controller001 ~]#virtualenv .venv 
  4.  
  5. [root@controller001 ~]#. .venv/bin/activate 
  6.  
  7. [root@controller001 ~]#python setup.py install 

安裝junitxml,是測試報告輸出為xml格式

  1. [root@controller001]#pip install junitxml 

由于tempest在Icehouse時期上使用是有bug的,bug如下:

在/root/tempest/tempest/openstack/common/log.py文件下添加

OpenStack平臺功能性測試工具Tempest安裝

注意:在Juno版本時期,此bug已修復,故而可以跳過。

修改tempest.conf文件,注意創(chuàng)建外網(wǎng)的時候不要共享,否則在測試啟動虛擬機以及進行網(wǎng)絡(luò)測試的時候會報錯

  1. cp etc/tempest.conf.sample etc/tempest.conf 
  2.  
  3. [root@controller001 etc]# == /usr/bincatalog_type===53f6877e-2f46-43e3-93b7-7e22786cacb2 
  4. flavor_ref = 1 
  5.  
  6. = = ./= 7e4b08b4-d7a1-4eff--= 7e4b08b4-d7a1-4eff--=== =-====-feature-= = = = = = = = http:login_url = http:============= http:uri_v3 = .=-feature-= = === http:region =-feature-= = 
  1. public_router_id =ac4a4d9b-27c7-492b-824a-ae384710ab2a 
  2. region =RegionOne 
  3. tenant_network_cidr = 10.100.0.0/16 
  4. tenant_network_mask_bits = 28 
  5. tenant_networks_reachable = true 
  6. [network-feature-enabled] 
  7. [object-storage] 
  8. [object-storage-feature-enabled] 
  9. [orchestration] 
  10. [scenario] 
  11. [service_available] (這里配置需要測試哪些模塊) 
  12. ceilometer = false 
  13. cinder = true 
  14. glance = true 
  15. heat = false 
  16. horizon = true 
  17. ironic = false 
  18. neutron = true 
  19. nova = true 
  20. sahara = false 
  21. swift = false 
  22. trove = false 
  23. zaqar = false 
  24. [stress] 
  25. [telemetry] 
  26. [volume] 
  27. [volume-feature-enabled] 
  28. multi_backend =true (測試cinder的后端存儲有多個backend) 

修改好配置文件之后,進行測試(以測試keystone當中token為例)

  1. [root@controller001 tempest]# nosetests tempest/api/identity/admin/test_tokens.py --with-xunit --xunit-file=/root/keystone_test_tokens.xml 

----------------------------------------------------------------------
Ran 2 tests in 1.532s

OK

  1. [root@controller001 ~]# cat keystone_test_tokens.xml 
  2. <?xml version="1.0" encoding="UTF-8"?><testsuite name="nosetests" tests="2" errors="0" failures="0" skip="0"><testcase classname="tempest.api.identity.admin.test_tokens.TokensTestJSON" name="test_create_get_delete_token[gate]" time="0.270"><system-out><![CDATA[I want to the url'value and body's value tenants,{"tenant": {"enabled"true"name""tenant--1612865724""description"""}} 
  3. I want to the url'value and body's value users,{"user": {"tenantId""b8f636519ff949d19405e59fce2f78ac""password""pass--1460623961""name""user--1945966900""email"""}} 
  4. I want to the url'value and body's value http://172.16.100.162:35357/v2.0/tokens,{"auth": {"tenantName": "tenant--1612865724", "passwordCredentials": {"username": "user--1945966900", "password": "pass--1460623961"}}}]]></system-out></testcase><testcase classname="tempest.api.identity.admin.test_tokens.TokensTestJSON" name="test_rescope_token[gate]" time="0.526"><system-out><![CDATA[I want to the url'value and body's value users,{"user": {"password": "pass--46178537", "name": "user--996425809", "email": ""}} 
  5. I want to the url'value and body's value tenants,{"tenant": {"enabled"true"name""tenant--781047271""description"""}} 
  6. I want to the url'value and body's value tenants,{"tenant": {"enabled"true"name""tenant--1886860973""description"""}} 
  7. I want to the url'value and body's value OS-KSADM/roles,{"role": {"name""role--684861165"}} 
  8. I want to the url'value and body's value http://172.16.100.162:35357/v2.0/tokens,{"auth": {"passwordCredentials": {"username": "user--996425809", "password": "pass--46178537"}}}I want to the url'value and body's value http://172.16.100.162:35357/v2.0/tokens,{"auth": {"token": {"id": "MIIDLgYJKoZIhvcNAQcCoIIDHzCCAxsCAQExCTAHBgUrDgMCGjCCAYQGCSqGSIb3DQEHAaCCAXUEggFxeyJhY2Nlc3MiOiB7InRva2VuIjogeyJpc3N1ZWRfYXQiOiAiMjAxNS0wMS0yMlQwNTo1MDowNy42NDg5NjIiLCAiZXhwaXJlcyI6ICIyMDE1LTAxLTIyVDA2OjUwOjA3WiIsICJpZCI6ICJwbGFjZWhvbGRlciIsICJhdWRpdF9pZHMiOiBbIkpIZ0U0eDgwVFJXSkJORjJFUjdXV3ciXX0sICJzZXJ2aWNlQ2F0YWxvZyI6IFtdLCAidXNlciI6IHsidXNlcm5hbWUiOiAidXNlci0tOTk2NDI1ODA5IiwgInJvbGVzX2xpbmtzIjogW10sICJpZCI6ICI4OGQwNGVkZmU0YWE0MmEyYWUzZWQxZjAyNzVmYWQ3NCIsICJyb2xlcyI6IFtdLCAibmFtZSI6ICJ1c2VyLS05OTY0MjU4MDkifSwgIm1ldGFkYXRhIjogeyJpc19hZG1pbiI6IDAsICJyb2xlcyI6IFtdfX19MYIBgTCCAX0CAQEwXDBXMQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVW5zZXQxDjAMBgNVBAcMBVVuc2V0MQ4wDAYDVQQKDAVVbnNldDEYMBYGA1UEAwwPd3d3LmV4YW1wbGUuY29tAgEBMAcGBSsOAwIaMA0GCSqGSIb3DQEBAQUABIIBAAjoxz4e-hnwHy45cd+o3tgQI1SdvidiOIfRrDAg5hMc0Fn9pGxnt-fYmZIBRH9b0LMjkjJa32OO2M0xmlcwCmaALsMMpBk5ouaECzNEJNGb2UyFW6Lpi5r5seM5HBO40brE0muMraOnzoRqkmGijEXf0RDn84iFrX40pvwo-htACNsB9fm1BkqUg8A+ANOJNHRGnqY80fIj+ipp5-53drN0VxbakHZvYJHAut5GsOdK-+TThj3fvbDA1fM-wa-SmZNV7xl-X8F9NChbe7VV3AFdE4XQHpdFZr+c4ZEDGlcq6VVRyD0OpeM2Nt9GbN8gevNWJpK2qjVJ2dxXgCZnDZg="}, "tenantName": "tenant--781047271"}}I want to the url'value and body's value http://172.16.100.162:35357/v2.0/tokens,{"auth": {"token": {"id": "MIIDLgYJKoZIhvcNAQcCoIIDHzCCAxsCAQExCTAHBgUrDgMCGjCCAYQGCSqGSIb3DQEHAaCCAXUEggFxeyJhY2Nlc3MiOiB7InRva2VuIjogeyJpc3N1ZWRfYXQiOiAiMjAxNS0wMS0yMlQwNTo1MDowNy42NDg5NjIiLCAiZXhwaXJlcyI6ICIyMDE1LTAxLTIyVDA2OjUwOjA3WiIsICJpZCI6ICJwbGFjZWhvbGRlciIsICJhdWRpdF9pZHMiOiBbIkpIZ0U0eDgwVFJXSkJORjJFUjdXV3ciXX0sICJzZXJ2aWNlQ2F0YWxvZyI6IFtdLCAidXNlciI6IHsidXNlcm5hbWUiOiAidXNlci0tOTk2NDI1ODA5IiwgInJvbGVzX2xpbmtzIjogW10sICJpZCI6ICI4OGQwNGVkZmU0YWE0MmEyYWUzZWQxZjAyNzVmYWQ3NCIsICJyb2xlcyI6IFtdLCAibmFtZSI6ICJ1c2VyLS05OTY0MjU4MDkifSwgIm1ldGFkYXRhIjogeyJpc19hZG1pbiI6IDAsICJyb2xlcyI6IFtdfX19MYIBgTCCAX0CAQEwXDBXMQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVW5zZXQxDjAMBgNVBAcMBVVuc2V0MQ4wDAYDVQQKDAVVbnNldDEYMBYGA1UEAwwPd3d3LmV4YW1wbGUuY29tAgEBMAcGBSsOAwIaMA0GCSqGSIb3DQEBAQUABIIBAAjoxz4e-hnwHy45cd+o3tgQI1SdvidiOIfRrDAg5hMc0Fn9pGxnt-fYmZIBRH9b0LMjkjJa32OO2M0xmlcwCmaALsMMpBk5ouaECzNEJNGb2UyFW6Lpi5r5seM5HBO40brE0muMraOnzoRqkmGijEXf0RDn84iFrX40pvwo-htACNsB9fm1BkqUg8A+ANOJNHRGnqY80fIj+ipp5-53drN0VxbakHZvYJHAut5GsOdK-+TThj3fvbDA1fM-wa-SmZNV7xl-X8F9NChbe7VV3AFdE4XQHpdFZr+c4ZEDGlcq6VVRyD0OpeM2Nt9GbN8gevNWJpK2qjVJ2dxXgCZnDZg="}, "tenantName": "tenant--1886860973"}}]]></system-out></testcase></testsuite> 

若有不足之處,歡迎批評指正!

責任編輯:Ophira 來源: 51CTO
相關(guān)推薦

2015-05-13 11:37:58

openstack測試網(wǎng)絡(luò)連通

2021-12-29 21:15:08

軟件測試軟件開發(fā)

2015-05-12 09:16:46

openstackneutron網(wǎng)絡(luò)連通

2022-08-23 09:00:00

Web測試工具自動化

2022-07-21 08:43:01

功能測試測試

2023-03-24 16:18:08

微服務(wù)架構(gòu)

2023-09-03 23:49:35

2011-08-18 13:58:08

2011-08-19 15:59:40

2012-03-26 10:55:03

JavaJava EE

2014-12-24 11:13:06

可用性集availabilitset

2023-05-12 15:20:24

2023-04-26 15:46:55

2015-06-09 16:44:06

光纖

2025-01-27 11:52:23

2018-01-12 09:20:55

2015-07-29 13:46:27

OpenStackIcehouse私有云實戰(zhàn)部署

2023-12-11 08:25:15

Java框架Android

2023-04-26 00:41:36

A/B測試郵件數(shù)量

2021-07-03 08:54:49

LinuxSysbench性能
點贊
收藏

51CTO技術(shù)棧公眾號