Teste de Desempenho --Jmeter exemplo de wordpress

Jmeter exemplo de wordpress

WordPress está usando uma linguagem PHP plataforma de desenvolvimento blog, os usuários podem criar seu próprio Web site no servidor que suporte PHP e MySQL de banco de dados. Também pode WordPress como um sistema de gerenciamento de conteúdo (CMS) para uso, instalação Wordress .

Primeiro, o login do usuário, login multiusuário

1, detalhes da etapa

Único login de usuário: 
1. Abra o caminho de instalação jmeter arquivo bin / user.properties com um editor de texto, adicione uma linha no máximo CookieManager.check.cookies final do arquivo = false (o jmeter o cookie mecanismo de verificação para desligar, isso é porque o jmeter não-conforme quando um cookie é set login wordpress, as devoluções JMeter o cookie quando logado, levando aos resultados registrados não pode logar-se durante a reprodução) 
2, abra o <a href = "http: //www.cnblogs . com / Keep-Ambition / p / 8381441.html "target =" _ blank "> jmeter função de gravação </a>, navegador e digite your_ip_port / wp-login.php operação de desembarque 
3, excluir nós roteiro redundantes gravados, GET pedido /wordpress/wp-login.php foi rebatizado como o formulário de login, o pedido POST /wordpress/wp-login.php renomeado o formulário de login na Submeter 
4, clique para executar 
 
o login multi-usuário: 
1, com base no script acima, (usuario1 = admin, password1 = AMDIN , usuário2 = test24, password2 = tes124): aumentando o elemento de configuração variável definida pelo utilizador, um aumento na quatro variáveis elemento 
2, modificar o nome do controlador de transacção para o utilizador de login $ {__ tridime adNum}, GET /wordpress/wp-login.php pedido de modificação do usuário formulário nome de login $ {__ threadNum}
3, altere o pedido de nome é POST /wordpress/wp-login.php enviar o formulário de login do usuário $ {__ threadNum }, modificar o valor dos parâmetros do pedido de registro: $ {__ V (usuário $ {__ threadNum})}, pwd é de R $ __V {({$ __ senha threadNum})} 
. 4, modificar o grupo de discussão, modificar o número de threads 2, Ramp-up Período 2 Review 
5. Clique em Executar

2, renderizações de desembarque:

3, aumento afirmação (em um teste de carga real, ele irá desativar a afirmação de swap, porque a afirmação vai ocupar CPU e memória, afetando assim a eficiência do jmeter concomitante de)

O exemplo acima pode ser julgado por os dados de resposta na busca de um nome de usuário para fazer logon maneira do usuário se o usuário fizer login com sucesso, o momento em que grande de usuários virtuais, isso é possível. Mas se há centenas ou milhares de usuários virtuais, é preciso afirmar um juiz

detalhes passo:

    1 no ponto certo, o pedido POST /wordpress/wp-login.php, ou seja, o nome de login enviar solicitações do usuário formulário $ {__ threadNum}, selecione Add -> pós-processador -> CSS / JQuery Extractor.

    • Nome de referência para: user_name (nome de variável, seguido pela necessidade de obter o valor desse nome variável) 
    • CSS expressão / JQuery: # wp-admin-bar-meu-conta .ab-item (para o elemento HTML é posicionado com seletores CSS)
    • Combinar números: 1 (se houver vários elementos correspondentes, o primeiro elemento ter apenas valores)

    2, solicitação POST /wordpress/wp-login.php, ou seja, nome de login do usuário enviar formulário $ {__ threadNum} ponto certo sobre o pedido, selecione Adicionar -> afirmações -> JSR223 afirmação. Idioma seleção javascript, insira o seguinte código no Script:

welcomeMessage = vars.get ( "nome_usuario") ; // apenas pós-processador valor variável aquisição definido 
nome de usuário = welcomeMessage.split ( "") [1] .trim (); // As fatias vírgula, espaços remover, obter um nome de usuário 
vars.put ( "username", nome de usuário) ; // nome do usuário re-atribuição, em seguida, adicione o vars do JMeter                  
threadNum = ctx.getThreadNum () + 1; // retorna o NUM thread atual 
 
// se o usuário remover os nomes de variáveis definidas pelo usuário siga os elementos da página de destino que removem o nome de usuário inconsistente, é determinado que não há bem sucedido pouso 
AssertionResult.setFailure ((vars.get ( "o usuário" + threadNum) == nome de usuário)!); 
AssertionResult.setFailureMessage (username + "falha de logon do usuário ');

Uma versão atualizada da afirmação, pode mostrar uma causa clara da falha de login:

welcomeMessage = vars.get ( "user_name") ; // Obter pós-processador apenas definido como um valor variável Hi, corda administrador 
threadNum = ctx.getThreadNum () + 1; // Obter o número do segmento atual 
expectLoginUser = vars // obter as variáveis definidas pelo usuário user1; .get ( "o usuário" + threadNum) 
 
IF (WelcomeMessage === null) {// Se a mensagem de boas-vindas não se logado, falhas de login é 
    AssertionResult.setFailure (true); // afirmação direta falhar 
    AssertionResult.setFailureMessage (expectLoginUser + "login do usuário falhar, ele pode ser um nome de usuário e senha não correspondem"); // definir a mensagem de falha de declaração 
} else {// Se pudermos chegar à mensagem de boas vindas, insira o cartão de Minden fundo 
    nome de usuário = welcomeMessage.split ( "") [1] .trim (); // O fatias vírgula, espaços remover, adquirindo nome de utilizador 
    vars.put ( "nome", nome de utilizador) ; // depuração 
 
    AssertionResult.setFailure ( ! (expectLoginUser == username)); // se o usuário não é o nosso conselho para preencher o usuário forma, uma falha de declaração 
    AssertionResult.setFailureMessage (nome de usuário + "Falha de logon do usuário '); // definir a mensagem de falha 
}

Nota: 

jmeter dúvidas variáveis ​​únicas:

  • vars: variáveis JMeter, incluindo variáveis definidas pelo usuário no documento aqui
  • ctx: contexto jmeter, pode ser (a partir de 0, de modo que o código deve threadmun + 1) para obter através deste número variável do processo atual, em particular documento aqui
  • AssertionResult: resultado de declaração, AssertionResult.setFailure(true)fará com que uma falha de declaração, a documentação específica picar aqui

4, o efeito da FIG afirmação contendo:

 Nota: Debug Sampler Este amostrador de montagem, embora o nome variável irá imprimir o plano de teste de depuração

 

Em segundo lugar, criar um artigo

Use JMeter para conseguir a criação de posts funções

1, detalhes passo:

1, jmeter aberta recursos de gravação, o navegador abre wordpress / wp-admin / pós- new.php página, criar um blog para registrar 
2, após a gravação terminar, remover os nós extras, login para reter controlador de transação, uma nova transações controlador, o 2 sobre o pedido de transação acima para o seguinte controlador, o controlador muda o nome da transação para criar pós usuário $ {__ threadNum} , para modificar o nome do GET /wordpress/wp-admin/post-new.php criar formulário de postagem, nome cargo /wordpress/wp-admin/post.php é modificado para enviar criar forma pós 
clique direito sobre a criação de nó de forma post e selecione Add -> pós-processador -> o CSS / JQuery Extractor 
(modificado para obter o nome user_id , nome de referência para post_id, CSS / JQuery Expressão: # post_id, Atributo: valor, os números correspondentes: 1, o valor padrão: o NOT FOUND) 
3, e, em seguida, criar uma CSS / JQuery Extractor, ainda na criação de formulário de postagem em  
( o nome mudou para obter user_id, nome de referência para user_id, CSS / JQuery Expressão: # user-id, Atributo: valor, números correspondentes: 1, o valor padrão: NÃO ENCONTRADO)
4 , POST /wordpress/wp-admin/post.php parâmetros de solicitação do pedido de modificação (user_ID: $ {user_id}, post_author: $ {user_id}, post_title: $ {__ RandomString (10, abcdefghijklmnopqrstuvwxyz)}, conteúdo: $ {__ Rando mString (10, abcdefghijklmnopqrstuvwxyz)}, post_id: $ {} post_id, post_author_override: $ {user_id})
5. Salve e execute

2, FIG efeito:

 Nota: Se você criar um artigo, o servidor voltou para o 403, é porque: cheques wordpress um artigo chamado ao processar uma solicitação para criar uma _nonceparâmetros de solicitação, quando criamos uma página aberta artigo em um navegador _nonce's valor será geração, isto é, se nós passamos pedido reprodução jmeter, então _nonceo valor é nenhum servidor caminho com o valor desejado para o número, que é wordpress prevent pedido Cross-site Falsificação maneira (CSRF).

Solução:
encontrar diretório de instalação do wordpress, localize o wp-includes/pluggable.phparquivo, use um editor de texto para abrir function wp_verify_nonce( $nonce, $action = -1 ) {na próxima função, adicionar uma nova linha return 1;, save.

função wp_verify_nonce ($ uso único, $ acção = -1) { 
  return 1; 
    $ nonce = (string) $ nonce; 
    $ utilizador wp_get_current_user = (); 
    $ uid = (int) $ user-> ID; 
    if (! $ uid) { 
    .... 
    .... 
    ....

 retornar 1, é deixar wordpress em cheque _nonce quando retorna verdadeiro para sempre, chegaram a um baixo fechada temporariamente para evitar papel CSRF.

 

Em terceiro lugar, o artigo visite

Visitantes dentro os analógicos ler artigos do blog, a lógica é implementada para visitantes de primeira home page visita blog, em seguida, selecionar aleatoriamente um artigo para ler na página inicial

1, detalhes passo:

  • 1.1, um novo plano de teste build-web-teste de plano
  • 1.2, o número de vezes que o laço do fio em que o grupo: 1
  • 1.3, IP e porta na home page solicitação HTTP é substituído no blog endereço da página inicial
  • 1.4, um novo CSS / JQuery Extractor em home_page, o nome alterado parachoose a post
    • Nome de referência: rand_post_href
    • CSS / expressões JQuery: .entry-title>a
    • Atributo: href
    • números correspondentes: 0
    • Valor padrão: NÃO ENCONTRADO
  • 1.5, uma nova JSR223 Postprocessor em Home_Page, modificar o nomeget post id
    • Língua: javascript
    • Roteiro:
var href = vars.get ( 'rand_post_href'); se (href) {var id = href.split ( '=') [1] vars.put ( "rand_id", id); }
  • 1,6 se um novo controlador, o nome é modificados if rand_id exists condições: 
$ {Rand_id}! = Null // se o artigo id não está vazio
  • 1.7 Criar um pedido de http em se o amostrador controlador, Nome:view post ${rand_id},请求器中的IP和port换成博客首页地址 
    • parâmetros de solicitação:p = ${rand_id}(如http://localhost/wordpress/?p=123)里抓取了123,这是随机访问文章的id里抓取了123,这是随机访问文章的id)
  • 1,8, salvar e executar.

2, FIG efeito:

Acho que você gosta

Origin www.cnblogs.com/doumingyi/p/12457379.html
Recomendado
Clasificación