[PYTHON] Automatisieren Sie das Testen von Facebook-Apps mit Facebook-Testbenutzern

Hallo Sekitaka.

Wenn Sie eine Facebook-App entwickeln, müssen Sie Tests für die Funktionen implementieren, die Sie mithilfe der Graph-API veröffentlichen. Zuerst habe ich es mit meinem eigenen Konto getestet, aber wenn es um Automatisierung ging, musste ich einen anderen Weg in Betracht ziehen.

Nach der Recherche kann Facebook Testbenutzer für die Entwicklung erstellen. Diese Funktion wird sowohl in der GUI als auch in der API bereitgestellt, sodass Sie Testbenutzer erstellen und löschen können. Indem Sie damit einen Facebook-Testbenutzer für jeden Test generieren und den Test ausführen, können Sie die Testautomatisierung unterstützen.

Ablauf der Grafik-API-Testautomatisierung

  1. Erstellen Sie zu Beginn des Tests einen Facebook-Testbenutzer
  2. Unit Test
  3. Löschen Sie Facebook-Testbenutzer

Stichprobe

Der Beispieltestfall in Python ist wie folgt.

sample.py


# coding:utf-8
# !/usr/bin/python
import facebook
import unittest
from unittest import TestCase


#Zu testende Funktion
#Schreiben Sie einfach eine Nachricht an die Wand
def post(message, fb_token):
    graph = facebook.GraphAPI(fb_token)
    graph.put_wall_post(message)


class Test(TestCase):
    #Facebook Testbenutzer
    FB_USER = None

    FB_APP_ID = 'YOUR_APP_ID'
    FB_APP_SECRET = 'YOUR_APP_SECRET'

    @classmethod
    def setUpClass(cls):
        super(Test, cls).setUpClass()

        #Testbenutzer erstellen
        app_token = facebook.GraphAPI().get_app_access_token(cls.FB_APP_ID,
                                                             cls.FB_APP_SECRET,
                                                             True)
        graph = facebook.GraphAPI(app_token)
        cls.FB_USER = graph.request(cls.FB_APP_ID + '/accounts/test-users', {
            'permissions': 'public_profile,user_photos,publish_actions'
        }, {},
                                    method='POST')

    @classmethod
    def tearDownClass(cls):
        super(Test, cls).tearDownClass()

        #Testbenutzer löschen
        app_token = facebook.GraphAPI().get_app_access_token(cls.FB_APP_ID,
                                                             cls.FB_APP_SECRET,
                                                             True)
        graph = facebook.GraphAPI(app_token)
        graph.request(cls.FB_USER['id'], {}, None, method='DELETE')

    #Testen Sie, ob dieser Beitrag normal gepostet werden kann
    def test_post(self):
        print Test.FB_USER
        post("hogehoge", Test.FB_USER['access_token'])


if __name__ == '__main__':
    unittest.main()

Zusammenfassung

Ich habe diesmal den Beispielcode von Python eingefügt, aber da die Graph-API HTTP-basiert ist, denke ich, dass der gleiche Mechanismus unabhängig von der Sprache erstellt werden kann. Es ist möglich, dass sich die API-Spezifikationen ändern, bevor Sie es wissen. Daher empfiehlt es sich, regelmäßige Tests des CI von Funktionen durchzuführen, die die Graph-API verwenden.

Recommended Posts

Automatisieren Sie das Testen von Facebook-Apps mit Facebook-Testbenutzern
Automatisieren Sie das Testen von Smartphone-Apps mit Appium-Python Edition
Automatisieren Sie Python-Tests mit CircleCI
Automatisieren Sie Windows-Anwendungstests mit Windows Application Driver-Python Edition
Automatisieren Sie UI-Tests mit Selenium API | Crawlen von Websites mit Python
[Golang] Testen Sie die Funktionsfehlerbeendigung "os.Exit (1)" mit dem Testen.
[Blender] Automatisieren Sie Blender-Add-On-Tests mit GitHub und TravisCI
Primzahlbeurteilung mit Python
Mit Codetest stärken ⑨
Mit Codetest stärken ⑤
Mit Codetest stärken ④
Primzahlbeurteilung mit Python
Mit Codetest stärken ②
Testen von Elasticsearch mit Python-tcptest
Mit Codetest stärken ①
Mit Codetest stärken ⑧
Mit Codetest stärken ⑨