Flutter端到端测试插件flutter_e2e的使用

Flutter端到端测试插件flutter_e2e的使用

Flutter End-to-end加密(E2EE)与flutter_sodium

使用

pubspec.yml

pubspec.yaml文件中添加依赖:

dependencies:
  flutter_e2e: ^1.0.2

创建密钥对

首先创建服务器和客户端的密钥对:

final keyPairFactory = E2eKeyPairFactory();

final serverKeyPair = keyPairFactory.create();
final clientKeyPair = keyPairFactory.create();

密钥交换

接下来进行密钥交换:

final sharedKeyFactory = E2eSharedKeyFactory();
    
final clientSharedKeyPair = sharedKeyFactory.create(KeyPair(
    pk: serverKeyPair.pk, // 服务器公钥
    sk: clientKeyPair.sk, // 客户端私钥
));

final serverSharedKeyPair = sharedKeyFactory.create(KeyPair(
    pk: clientKeyPair.pk, // 客户端公钥
    sk: serverKeyPair.sk, // 服务器私钥
));

// 实现E2E共享密钥并存储共享密钥
Uint8List _serverSharedKey = Uint8List(0);
Uint8List _clientSharedKey = Uint8List(0);

class ServerE2eSharedKey implements E2eSharedKey {
  @override
  Uint8List sharedKey() => _serverSharedKey;
}

class ClientE2eSharedKey implements E2eSharedKey {
  @override
  Uint8List sharedKey() => _clientSharedKey;
}

// 将共享密钥保存到数据存储中
_serverSharedKey = serverSharedKeyPair;
_clientSharedKey = clientSharedKeyPair;

加密

使用客户端的加密功能对明文进行加密:

final plainText = 'E2E';
final cipherText = await clientE2eCryptography.encrypt(plainText);

解密

使用服务器的解密功能对密文进行解密:

final cipherText = 'HEX-STRING'; // 这里应该是实际的加密后的字符串
final plainText = await serverE2eCryptography.decrypt(cipherText);

更多关于Flutter端到端测试插件flutter_e2e的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter端到端测试插件flutter_e2e的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


flutter_e2e 是一个用于 Flutter 应用的端到端(End-to-End, E2E)测试的插件。它允许你在实际设备或模拟器上运行测试,以模拟真实用户的操作流程。通过 flutter_e2e,你可以编写和运行测试用例,确保你的应用在整个用户旅程中正常工作。

1. 安装 flutter_e2e

flutter_e2e 是 Flutter SDK 的一部分,通常不需要单独安装。你可以在 pubspec.yaml 文件的 dev_dependencies 中看到它:

dev_dependencies:
  flutter_test:
    sdk: flutter
  flutter_e2e:
    sdk: flutter

2. 编写 E2E 测试

test_driver 目录下创建一个新的 Dart 文件,例如 app_test.dart,并在其中编写你的 E2E 测试代码。

import 'package:flutter_driver/flutter_driver.dart';
import 'package:test/test.dart';

void main() {
  group('Flutter E2E Test', () {
    FlutterDriver driver;

    // 初始化 FlutterDriver
    setUpAll(() async {
      driver = await FlutterDriver.connect();
    });

    // 测试结束后关闭 FlutterDriver
    tearDownAll(() async {
      if (driver != null) {
        await driver.close();
      }
    });

    // 示例测试:检查文本是否正确显示
    test('check text', () async {
      final textFinder = find.text('Hello, World!');
      expect(await driver.getText(textFinder), 'Hello, World!');
    });

    // 示例测试:点击按钮并检查结果
    test('tap button and check result', () async {
      final buttonFinder = find.byValueKey('my_button');
      final resultFinder = find.byValueKey('result_text');

      await driver.tap(buttonFinder);
      expect(await driver.getText(resultFinder), 'Button Pressed');
    });
  });
}

3. 运行 E2E 测试

在终端中运行以下命令来启动你的 E2E 测试:

flutter drive --target=test_driver/app_test.dart
回到顶部