Difference between revisions of "Performance Testing with Sipp"

From Kolmisoft Wiki
Jump to navigationJump to search
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<br><br>
[[Performance tests]]
[[Performance tests]]


With this test enviroment we can simulate a single or multple users calling trought mor/asterisk.
<br><br>
----
<br><br>
 
With this test environment, we can simulate a single user or multiple users calling through MOR/Asterisk.
 
In the scenario uac_auth.xml, sipp start sending a SIP INVITE to MOR and if AUTH is requested, sipp resend SIP INVITE with PROXY AUTHENTICATION.


In the scenario uac_auth.xml, sipp start sending a SIP INVITE to MOR and if AUTH is requested, sipp resend SIP INVITE with PROXY AUTHENTICATION,
Playing with sipp parameters, you can increase the call data rate and other variables, such as call duration.
Playing with sipp parameters you can increase call data rate and other variable like call duration, etc.




Line 12: Line 19:
  tar xvfz sipp.3.1.src.tar.gz
  tar xvfz sipp.3.1.src.tar.gz
  cd sipp.svn
  cd sipp.svn
  apt-get install libssl-dev / yum install openssl-devel
  apt-get install libssl-dev / yum -y install openssl-devel
  make ossl
  make ossl


edit a new file "users.csv":
Edit a new file "users.csv":


SEQUENTIAL
SEQUENTIAL
Line 25: Line 32:
user003;[authentication username=user001 password=password001]
user003;[authentication username=user001 password=password001]


edit a new file "uac_auth.xml":
Edit a new file "uac_auth.xml":


<?xml version="1.0" encoding="ISO-8859-1" ?>
<?xml version="1.0" encoding="ISO-8859-1" ?>
Line 167: Line 174:
./sipp -inf users.csv -sf uac_auth.xml -s <extension_to_call> <mor_sip_server_sip>
./sipp -inf users.csv -sf uac_auth.xml -s <extension_to_call> <mor_sip_server_sip>


For a more complete sipp syntax look here:
For a more complete sipp syntax, look here:


http://sipp.sourceforge.net/doc1.1/reference.html#xmlsyntax
http://sipp.sourceforge.net/doc1.1/reference.html#xmlsyntax

Latest revision as of 11:59, 28 April 2010



Performance tests






With this test environment, we can simulate a single user or multiple users calling through MOR/Asterisk.

In the scenario uac_auth.xml, sipp start sending a SIP INVITE to MOR and if AUTH is requested, sipp resend SIP INVITE with PROXY AUTHENTICATION.

Playing with sipp parameters, you can increase the call data rate and other variables, such as call duration.


Download and compile the last sipp:

wget  http://surfnet.dl.sourceforge.net/sourceforge/sipp/sipp.3.1.src.tar.gz
tar xvfz sipp.3.1.src.tar.gz
cd sipp.svn
apt-get install libssl-dev / yum -y install openssl-devel
make ossl

Edit a new file "users.csv":

SEQUENTIAL

user001;[authentication username=user001 password=password001]

user002;[authentication username=user001 password=password001]

user003;[authentication username=user001 password=password001]

Edit a new file "uac_auth.xml":

<?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE scenario SYSTEM "sipp.dtd"> <scenario name="UAC with AUTH scenario">

 <send retrans="500">
   <![CDATA[
     INVITE sip:[service]@[remote_ip]:[remote_port] SIP/2.0
     Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
     From: [field0] <sip:[field0]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]
     To: sut <sip:[service]@[remote_ip]:[remote_port]>
     Call-ID: [call_id]
     CSeq: 1 INVITE
     Contact: sip:[field0]@[local_ip]:[local_port]
     Max-Forwards: 70
     Subject: Performance Test
     Content-Type: application/sdp
     Content-Length: [len]
     v=0
     o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
     s=-
     c=IN IP[media_ip_type] [media_ip]
     t=0 0
     m=audio [media_port] RTP/AVP 0
     a=rtpmap:0 PCMU/8000
   ]]>
 </send>
<recv response="407" auth="true">
</recv>
<send>
  <![CDATA[
    ACK sip:[service]@[remote_ip]:[remote_port] SIP/2.0
    Via: SIP/2.0/[transport] [local_ip]:[local_port]
    From: [field0] <sip:[field0]@[local_ip]:[local_port]>;tag=[call_number]
    To: sut <sip:[service]@[remote_ip]:[remote_port]>[peer_tag_param]
    Call-ID: [call_id]
    CSeq: 1 ACK
    Contact: sip:[field0]@[local_ip]:[local_port]
    Max-Forwards: 70
    Subject: Performance Test
    Content-Length: 0
  ]]>
</send>
<send retrans="500">
  <![CDATA[
    INVITE sip:[service]@[remote_ip]:[remote_port] SIP/2.0
    Via: SIP/2.0/[transport] [local_ip]:[local_port]
    From: [field0] <sip:[field0]@[local_ip]:[local_port]>;tag=[call_number]
    To: sut <sip:[service]@[remote_ip]:[remote_port]>
    Call-ID: [call_id]
    CSeq: 2 INVITE
    Contact: sip:[field0]@[local_ip]:[local_port]
    [field1]
    Max-Forwards: 70
    Subject: Performance Test
    Content-Type: application/sdp
    Content-Length: [len]
    v=0
    o=user1 53655765 2353687637 IN IP4 127.0.0.1
    s=-
    t=0 0
    c=IN IP4 [media_ip]
    m=audio [media_port] RTP/AVP 0
    a=rtpmap:0 PCMU/8000
  ]]>
</send>
 <recv response="100" optional="true">
 </recv>
 <recv response="180" optional="true">
 </recv>
 <recv response="183" optional="true">
 </recv>
 <recv response="200" rtd="true">
 </recv>
 <send>
   <![CDATA[
     ACK sip:[service]@[remote_ip]:[remote_port] SIP/2.0
     Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
     From: [field0] <sip:[field0]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]
     To: sut <sip:[service]@[remote_ip]:[remote_port]>[peer_tag_param]
     Call-ID: [call_id]
     CSeq: 1 ACK
     Contact: sip:[field0]@[local_ip]:[local_port]
     Max-Forwards: 70
     Subject: Performance Test
     Content-Length: 0
   ]]>
 </send>
 <pause/>
 <send retrans="500">
   <![CDATA[
     BYE sip:[service]@[remote_ip]:[remote_port] SIP/2.0
     Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
     From: [field0] <sip:[field0]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]
     To: sut <sip:[service]@[remote_ip]:[remote_port]>[peer_tag_param]
     Call-ID: [call_id]
     CSeq: 2 BYE
     Contact: sip:[field0]@[local_ip]:[local_port]
     Max-Forwards: 70
     Subject: Performance Test
     Content-Length: 0
   ]]>
 </send>
 <recv response="200" crlf="true">
 </recv>
 <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>
 <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>

</scenario>

Then run this:

./sipp -inf users.csv -sf uac_auth.xml -s <extension_to_call> <mor_sip_server_sip>

For a more complete sipp syntax, look here:

http://sipp.sourceforge.net/doc1.1/reference.html#xmlsyntax



Configuration pointers for testing

sip.conf

[general]
context=playback_test
;rtptimeout=60  
;rtpholdtimeout=300
[1000]
type = friend
host = dynamic
username = 1000
secret = 1000
nat = no
context = playback_test
disallow = all
allow = alaw


[1001]
type = friend
host = dynamic
username = 1001
secret = 1001
nat = no
context = playback_test
disallow = all
allow = alaw

extensions.conf

[playback_test]
exten => _X.,1,Answer
exten => _X.,2,Background(tt-monkeys)
exten => _X.,3,Goto(2)
;exten => _X.,3,Hangup