我想试着用 Halo 的 API 做一点自动化的接口测试,但在用户登陆这块遇到点问题,不太清楚密码是怎么加密的。下面是我的测试用例。

#!api-testing
# yaml-language-server: $schema=https://gitee.com/linuxsuren/api-testing/raw/master/sample/api-testing-schema.json
name: Halo
api: https://demo.halo.run
items:
- name: public-key
  request:
    api: /login/public-key
    method: GET
- name: login
  request:
    api: /login
    method: POST
    body: |
      {
        "username": "demo",
        "password": "P@ssw0rd123.."
      }
  expect:
    statusCode: 500

LinuxSuRen Basic Auth不在需要调用登录 API 了,比如想要调用 Reload 插件的 API 对于 curl 来说 使用 -u 参数即可
curl -u demo:P@ssw0rd123.. -X PUT https://demo.halo.run/apis/api.console.halo.run/v1alpha1/plugins/plugin-repos/reload

感谢各位的解答,我这个原本就是希望对接口做测试了,也希望能对 Login 接口做覆盖

LinuxSuRen 我们目前还没有接口自动化,精力有限,如果你感兴趣的话非常欢迎来尝试这一块♥️,但估计我们没有精力参与维护,所以可能会是一个坑😅

    guqing 我没有办法保证太久,持续维护一年还是可以做到的。到时候如果确实对 Halo 有帮助,那可以继续维护下去,如果没有带来实际价值,那确实不太需要接口测试了。

    那我就PR走起了。

    已解决。

    有点不太明白,提示 public key 是 base64 的,解密后

    {"base64Format":"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqjNKsGtWsOVGz0cgCEg5dBGgD03fmgXHfClp/C7yRho6Fopyhpz1Jga0rVZsavdt0ULmFWh6XcCC4TML11VVAneAaNXzBb+XRlhfKQeZn5D7K3EHISsj90gcV6jMADOFLvvlups/R0tHhnhbn4+WWJosLRFrm6INPNQRaXPOJsDT+VDoTNNbp71Dlemdg8oNk2abQUnfDY6WzF5gES2ZYS/9eW8qFsA56fdKbOiOAUs9oxVT3Ouyr++VYA/VDLjztGKPSDRvThpEbY7AQe+L2pTkZYwryoLNlvbahAvTTGyCi8bsjrcuZ1/lmjy41qo1LiogCzcwxDQBMkSLIKN55wIDAQAB"}
    ➜ api-testing git🙁master) ✗ echo -n MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqjNKsGtWsOVGz0cgCEg5dBGgD03fmgXHfClp/C7yRho6Fopyhpz1Jga0rVZsavdt0ULmFWh6XcCC4TML11VVAneAaNXzBb+XRlhfKQeZn5D7K3EHISsj90gcV6jMADOFLvvlups/R0tHhnhbn4+WWJosLRFrm6INPNQRaXPOJsDT+VDoTNNbp71Dlemdg8oNk2abQUnfDY6WzF5gES2ZYS/9eW8qFsA56fdKbOiOAUs9oxVT3Ouyr++VYA/VDLjztGKPSDRvThpEbY7AQe+L2pTkZYwryoLNlvbahAvTTGyCi8bsjrcuZ1/lmjy41qo1LiogCzcwxDQBMkSLIKN55wIDAQAB | base64 -d
    �0�0 �H��
    ��3J�kV��F�GH9t�Mߚ�|)i�.�F:�r���&��Vlj�m�B�hz]���3
    ���-�a/�yo*�9��Jl�K=�S�벯� �UUw�h����FX)����+q!+#�HW��3�.�庛?GKG�x[���X�,-k��
    ��b�H4oNDm��A�ڔ�e�+ʂ͖�ڄ
    �Ll���쎷.g
    �<�֪5.

    70�42D� �y�

    {"type":"about:blank","title":"Internal Server Error","status":500,"detail":"Something went wrong, please try again later.","instance":"/login","requestId":"57058f32-5539","timestamp":"2023-06-03T08:08:57.132108596Z"}

    登陆接口返回上面的内容,是什么意思呀?