Perguntas Frequentes

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard
Not for use with personal data

Android

Analisador Móvel

Por que o app precisa de permissões extras?

Ao configurar o aplicativo pela primeira vez, você será solicitado a conceder permissão ao axe DevTools Mobile Analyzer para sobrepor desenho e configurações de acessibilidade. A sobreposição de desenho permite que o botão de ação flutuante siga você, independentemente do aplicativo que você tenha aberto em seu dispositivo. As configurações de acessibilidade permitem que o aplicativo analisador acesse informações de visualização dentro do aplicativo que você está tentando verificar.

Teste Automatizado

Posso configurar testes automatizados sem autenticação?

Oferecemos builds offline de nossos SDKs e drivers Appium para sua linha de automação que não requerem solicitações de rede para o serviço axe DevTools Mobile. Assim, essas configurações de build estão disponíveis apenas através do Artifactory da Deque.

Observe que este build é um subconjunto de funcionalidades do axeDevTools Mobile para Android. Para usar o conjunto completo de funcionalidades, incluindo o envio de resultados para o painel, use nossos SDKs padrão ou drivers Appium. Consulte o guia de introdução.

Configuração

Ao navegar pela documentação, observe que nem todos os recursos que requerem interação com o servidor estão disponíveis na build offline.

important

Lista de Verificação para Início:

  • Requer: Android API 26 ou superior
  • Conecte-se ao Artifactory para integrar o framework.
Configuração para Teste

No arquivo do aplicativo, adicione: build.gradle Certifique-se de que há permissão de Internet no

android {
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/AL2.0' 
        exclude 'META-INF/LGPL2.1'
    }
}

AndroidManifest.xml :Exemplo de Teste Espresso

<uses-permission android:name="android.permission.INTERNET" />
Note que o

e o axe.loginWithUsername(...) não estão disponíveis nesta versão da biblioteca e devem ser removidos do código de configuração se você estiver convertendo do uso da versão autenticada. axe.loginWithApiKey(...) Agnóstico de Layout

Resultados
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
    @Rule    
    @JvmField    
    var rule: ActivityScenarioRule<MainActivity> = ActivityScenarioRule(MainActivity::class.java)

    companion object {
        private val axe = AxeDevTools()
        init {
            axe.setOfflineLicenseKey("deque_provided_license_key_here")
        }
        axe.setInstrumenation(InstrumentationRegistry.getInstrumentation())
    }

    @Test    
    fun exampleTest() {
        onView(withText("Example Button Name")).perform(click())
    }

    @After    
    fun runAccessibilityScan() {
        val scan = axe.scan()
        val result = scan?.getSerializedResult()

        axe.tearDown()   
    }
}

Por que meus resultados não estão aparecendo no Developer Hub?

Se você não vê seus resultados no Developer Hub, verifique se você fez o seguinte:

Forneça uma chave de API válida da Axe DevTools Mobile

  • ao inicializar a biblioteca Axe em seus testes. Visite as Configurações de Conta do Axe para encontrar suas Chaves de API ou Gerar uma nova chave de API do Axe DevTools Mobile .Forneça um ID de Projeto válido
  • junto com a chave de API ao iniciar uma sessão de teste. Um ID de Projeto não é necessário para iniciar uma sessão de teste, mas *é* necessário para enviar resultados para o Developer Hub. Quando você Criar um Projeto para Seus Resultados , um ID de Projeto é gerado automaticamente.Chame a função
  • uploadToDashboard após cada verificação no seu teste para enviar resultados para o Developer Hub.
  • Veja um exemplo completo. Consulte a Classe de Teste Exemplo para Android e compare com a sua implementação.
tip

Looking for your Project ID? You can access this from the main Projects page in Axe Developer Hub.

  • Go to 'Settings' for your project and select 'Configure Project'.
  • In the 'Project Details' you can find and copy the Project ID.
  • Make sure you have provided this Project ID to the startSession method.

iOS

Analisador Móvel

O que fazer se meu Certificado de Desenvolvimento Apple estiver expirado?

Se você receber um erro ao usar o Mobile Analyzer Desktop App dizendo que seu Certificado de Desenvolvimento Apple expirou, siga os passos abaixo.

Correção Rápida
  1. Abra o Xcode → Vá para Xcode > Configurações (ou Preferências em versões mais antigas)
  2. Selecione a aba Contas
  3. Selecione seu ID Apple
  4. Clique em Gerenciar Certificados
  5. Encontre o certificado expirado (terá um ícone de aviso)
  6. Selecione o certificado expirado e clique no botão de menos () para removê-lo
  7. Clique no botão de mais (+) e selecione Desenvolvimento Apple para criar um novo certificado
  8. Feche o aplicativo Mobile Analyzer
  9. Inicie o aplicativo novamente. Consulte Testar Aplicativos iOS para Acessibilidade se necessário.
Ainda está recebendo um erro?

Às vezes, o Xcode armazena em cache o certificado antigo. Tente o seguinte:

  1. Revogue o certificado na sua conta de Desenvolvedor Apple:
    • Vá para developer.apple.com
    • Navegue até **Certificados, Identificadores e Perfis**
    • Encontre o certificado expirado e revogue-o
    • Volte para o Xcode e repita os passos acima para criar um novo
  2. Limpe os dados derivados:
    • No **Xcode**: **Janela** > **Organizador** > **Projetos** aba
    • Selecione seu projeto e clique em **Excluir** ao lado de **Dados Derivados**
  3. Reinicie o Xcode após fazer essas mudanças

O que devo fazer se meu dispositivo não pôde ser registrado automaticamente?

Para registrar manualmente um telefone na sua conta de Desenvolvedor da Apple, você precisará adicioná-lo como um dispositivo de teste pelo portal de Desenvolvedores da Apple. Veja como:

  1. Obtenha o UDID (Identificador Único do Dispositivo) do seu dispositivo:
    • Conecte seu iPhone ao seu Mac
    • Abra o **Finder** (macOS Catalina ou posterior) ou **iTunes** (versões anteriores)
    • Selecione seu dispositivo e clique no número de série até que ele exiba o UDID
    • Clique com o botão direito e copie o UDID
    • Alternativamente, você pode abrir o **Xcode**: **Janela** > **Dispositivos e Simuladores**, selecione seu dispositivo e copie o identificador
  2. Adicione o dispositivo à sua conta de Desenvolvedor:
    • Vá para developer.apple.com e faça login
    • Navegue até **Certificados, Identificadores e Perfis**
    • Selecione **Dispositivos** na barra lateral
    • Clique no botão de adição (**+**) para registrar um novo dispositivo
    • Digite um nome para o seu dispositivo e cole o UDID
    • Clique em **Continuar** e depois **Registrar**
  3. Reinicie o Mobile Analyzer:

Lembre-se de que contas gratuitas de Desenvolvedor Apple podem registrar até 3 dispositivos, enquanto contas pagas podem registrar até 100 dispositivos por tipo de dispositivo (100 iPhones, 100 iPads, etc.).

Testes Automatizados

O que é um identificador de pacote?

Um identificador de pacote é um identificador único dentro do ecossistema da Apple para identificação de aplicativos. Dois aplicativos não podem ter o mesmo identificador. Isso inclui uma versão beta ou outras variações de um aplicativo. O axe DevTools Mobile usa o identificador de pacote para conectar e consultar as informações de acessibilidade das visualizações do aplicativo em teste.

tip

Precisa testar um app da App Store? Podemos obter o identificador de pacote para você. Procure a lista do seu aplicativo na App Store a partir de um navegador da web e use-a para encontrar o ID do Pacote do seu app.

A que o Aplicativo Runner instalado tem acesso?

Apenas ao aplicativo que você especificou para se comunicar, adicionando o Identificador de Pacote nas etapas de configuração. A Apple é realmente excelente em segurança e utiliza um ambiente sandbox para cada aplicativo que você instalou no seu dispositivo, independentemente de como esse aplicativo foi instalado (Testflight, Xcode ou App Store). O aplicativo analisador utiliza a funcionalidade UI Test integrada ao ecossistema Xcode/Apple. Esta é uma comunicação de caixa fechada para conversar com um aplicativo através do identificador de pacote que você especificou no arquivo de Configuração.

Erros Comuns & Correção

Se você receber um erro / Teste Falhou durante os testes, esta seção destacará as mensagens de erro comuns e como resolvê-las. Selecione o ícone 'x' vermelho em forma de diamante, e o Xcode abrirá o painel 'Navegador de Problemas' à esquerda para destacar a mensagem de erro específica.

  • Cannot request screenshot data because it does not exist: Esta é a mensagem de erro que você provavelmente receberá na primeira execução. Execute o teste novamente para ver se ele é resolvido. Se este erro aparecer uma segunda vez, certifique-se de que você tenha o identificador de pacote correto no lugar e que o aplicativo a ser testado esteja aberto no simulador/dispositivo selecionado.

  • caught error: “couldNotVerifyUser”: Falha no login com Deque. Verifique se sua chave API foi adicionada ao arquivo de Configuração e se é válida para axe DevTools Mobile visitando Configurações da Conta axe.

Posso configurar para testes automatizados sem autenticação?

Oferecemos compilações offline de nossos SDKs e drivers Appium para sua pipeline de automação que não exigem solicitações de rede ao serviço axe DevTools Mobile. Assim, essas configurações de compilação estão disponíveis apenas através do Artifactory da Deque.

Por favor, note que esta compilação é um subconjunto de capacidades dentro do axeDevToolsXCUI. Para usar o conjunto completo de capacidades, incluindo enviar resultados para o painel, por favor, use nosso framework axeDevToolsXCUI. Consulte o guia de configuração.

Configuração
  1. Importe o framework em qualquer arquivo usado para testes de acessibilidade.
import axeDevToolsXCUI_noauth
  1. Crie um objeto dentro da sua classe de testes para manter a instância do axe DevTools:
var axeDevTools: AxeDevTools?
  1. Inicialize o framework dentro dos métodos setUp ou setUpWithError .
axeDevTools = AxeDevTools.startSession()
Exemplo Completo de Configuração

import axeDevToolsXCUI_noauth
import XCTest

class MyUITests: XCTestCase {

    var axeDevTools: AxeDevTools?

    override func setUpWithError() throws {
        axeDevTools = AxeDevTools.loginWithLicenseKey("deque_provided_license_key_here") // does this change??
    }
    ...
}
Testes de UI

Para começar o teste, passe qualquer XCUIElement para o framework para executar testes de acessibilidade contra ele e seus filhos.

let result = try axeDevTools.run(onElement: XCUIApplication())
Exemplo Completo
import XCTest
import axeDevToolsXCUI_noauth

final class XCUI_noAuthUITest: XCTestCase {
    var axeDevTools: AxeDevTools = AxeDevTools.startSession()

    override func setUpWithError() throws {
        continueAfterFailure = false
    }

    func testExample() throws {
        let app = XCUIApplication()
        app.launch()

        let result = try axeDevTools.run(onElement: app)
        // Do something with the result
    }
}
O Que Vem a Seguir

Nós fornecemos os dados e ferramentas para criar um fluxo de trabalho CI/CD que ajuda sua equipe. Aqui estão algumas sugestões sobre o que fazer com esse objeto de resultado:

  1. Falhe a compilação se falhas forem encontradas. Se você tiver uma tela que já foi limpa de problemas de acessibilidade, talvez queira garantir que nenhum novo problema surja no ciclo de desenvolvimento, verificando se a contagem é 0, e falhando a verificação de status do pull-request se não for.
// Add an assertion to fail the build if issues were found
XCTAssertTrue(result.failures.count > 0)
  1. Salve os resultados localmente para criar um relatório específico dos problemas encontrados no branch. Confira a criação de um relatório com nosso CLI de Relatórios para pipelines CICD. Isso pode ser muito útil para branches de candidato a lançamento ou beta para trazer à luz os possíveis obstáculos que os clientes que usam tecnologia assistiva podem enfrentar.

Resultados

Por que meus resultados não estão aparecendo no Developer Hub?

Se você não vê seus resultados no Developer Hub, verifique se você fez o seguinte:

  • Forneça uma chave de API válida do Axe DevTools Mobile ao inicializar o framework Axe em seus testes. Visite Configurações da Conta Axe para encontrar suas Chaves de API ou Gerar uma nova chave de API do Axe DevTools Mobile.
  • Forneça um ID de Projeto válido junto com a chave de API ao iniciar uma sessão de teste. Um ID de Projeto não é necessário para iniciar uma sessão de teste, mas ele *é* necessário para enviar resultados ao Developer Hub. Quando você Criar um Projeto para Seus Resultados, um ID de Projeto é gerado automaticamente.
  • Chamar a postResult função após cada verificação em seu teste para enviar resultados ao Developer Hub.
  • Veja um exemplo completo. Consulte a Classe de Teste de Exemplo para iOS e compare com sua implementação.
tip

Procurando seu ID de Projeto? Você pode acessá-lo na página principal de Projetos em Axe Developer Hub.

  • Vá para 'Configurações' do seu projeto e selecione 'Configurar Projeto'.
  • Nos 'Detalhes do Projeto', você pode encontrar e copiar o ID do Projeto.
  • Certifique-se de que tenha fornecido este ID de Projeto para o startSession método.

Appium

Teste Automatizado

Posso configurar para teste automatizado sem autenticação?

Você pode executar uma varredura com nossos drivers offline do Appium, usando uma chave de licença fornecida pela Deque. Isso pode ser útil ao trabalhar com provedores de nuvem ou quando você precisa executar varreduras sem fazer solicitações de rede para o serviço axe DevTools Mobile.

Instalação

Você pode instalar os drivers offline do Appium usando um pacote npm privado da Artifactory da Deque:

Android
appium driver install --source=npm @axe-devtools/axe-appium-uiautomator2-driver-offline
iOS
appium driver install --source=npm @axe-devtools/axe-appium-xcuitest-driver-offline

Alternativamente, você pode baixá-lo diretamente do Agora e instalá-lo localmente. Consulte nossa documentação sobre Configuração para Nuvem Privada e On Prem para mais detalhes.

Chave de Licença

Você precisará de uma chave de licença da Deque para usar esta versão offline do driver Appium. Por favor, envie uma solicitação para helpdesk@deque.com ou para support.deque.com.

A chave de licença estará no formato de string e parecerá algo assim: eyJjb21wYW55TmFtZSI6Ik1vYmlsZSBUZWFtIiwiZXhwaXJlcyI6MTcyMzk5NDk1MDY2NX0=.+aHokyifCnw6peuAmAq75IGrTjVSpkRhhfBWnf92Hp0WV3FF5Qph/KFNr7ALzi6/3K7BcSMKnelqtnwrd6mMkQ==

É altamente recomendável adicionar essa chave de licença às suas variáveis de ambiente para segurança.

Verificação Offline

Para executar uma verificação, certifique-se de que sua chave de licença esteja incluída em axeSettings.

const axeSettings = { 
  'licenseKey': 'YOUR_LICENSE_KEY_HERE'
};

const result = await driver.execute('mobile: axeScan', axeSettings);

Em axeSettings, as seguintes propriedades opcionais estão disponíveis:

  • ignoreRules (padrão: [])
  • ignoreExperimental (padrão: false)

A seguir estão exemplos completos de verificações offline com nossos drivers Appium, usando o framework de testes Mocha em JavaScript.

Android
const { remote } = require('webdriverio');
const assert = require('assert');

describe('AxeScan', () => {
    let driver;
    let axeSettings;

    before(async () => {
        axeSettings = {
            //  Your license key has been stored in an environment variable for security
            licenseKey: process.env.AXE_LICENSE_KEY
        };

        driver = await remote({
            hostname: 'localhost',
            port: 4723,
            capabilities: {
                platformName: 'Android',
                'appium:automationName': 'AxeUiAutomator2',
                'appium:deviceName': 'Android',
                'appium:appPackage': 'com.android.settings',
                'appium:appActivity': '.Settings',            
            },
            logLevel: 'silent'
        });
    });

    after(async () => {
        await driver.deleteSession();
    });

    it('scan settings screen', async () => {
        // run accessibility scan
        const result = await driver.execute('mobile: axeScan', axeSettings);

        // ensure no errors were encountered during the scan
        if (result.axeError) {
            assert.fail(`AxeScan failed with error: ${result.axeError}`);
        }

        const failCount = result.axeRuleResults.filter(rule => rule.status === 'FAIL').length;

        // assert that there are no accessibility violations
        assert.strictEqual(failCount, 0);
    });
});
iOS
const { remote } = require('webdriverio');
const assert = require('assert');

describe('AxeScan', () => {
    let driver;
    let axeSettings;

    before(async () => {
        axeSettings = {
            //  Your license key has been stored in an environment variable for security
            licenseKey: process.env.AXE_LICENSE_KEY
        };

        driver = await remote({
            hostname: 'localhost',
            port: 4723,
            capabilities: {
                platformName: 'iOS',
                'appium:automationName': 'AxeXCUITest',
                'appium:bundleId': 'com.apple.Maps',
                'appium:udid': '...', // xcrun simctl list | grep Booted         
            },
            logLevel: 'silent'
        });
    });

    after(async () => {
        await driver.deleteSession();
    });

    it('scan settings screen', async () => {
        // run accessibility scan
        const result = await driver.execute('mobile: axeScan', axeSettings);

        // ensure no errors were encountered during the scan
        if (result.axeError) {
            assert.fail(`AxeScan failed with error: ${result.axeError}`);
        }

        const failCount = result.axeRuleResults.filter(rule => rule.status === 'FAIL').length;

        // assert that there are no accessibility violations
        assert.strictEqual(failCount, 0);
    });
});

Resultados

Por que meus resultados não estão aparecendo no Developer Hub?

Se você não vê seus resultados no Developer Hub, verifique se fez o seguinte:

tip

Procurando por seu ID de Projeto? Você pode acessá-lo na página principal de Projetos em Axe Developer Hub.

  • Vá para 'Configurações' do seu projeto e selecione 'Configurar Projeto'.
  • Em 'Detalhes do Projeto', você pode encontrar e copiar o ID do Projeto.
  • Certifique-se de ter fornecido este ID de Projeto para o axeStartSession método.