Best Python code snippet using locust
tasks.py
Source:tasks.py  
...19    name = "Competition Add"20    rpc_name = "competitionadd"21    menu_path = "competition.add"22    on_request_args = ['auth']23    def on_request(self, auth, **kwargs):24        authorize_access(self.database_connection, auth, self.config)25        competition = Competition.from_dict(self.database_connection, kwargs)26        content = competition.as_dict()27        return EndpointOutput(content = content)28class CompetitionDel(CssefRPCEndpoint):29    name = "Competition Delete"30    rpc_name = "competitiondel"31    menu_path = "competition.del"32    takes_kwargs = False33    on_request_args = ['auth', 'pkid']34    def on_request(self, auth, pkid):35        authorize_access(self.database_connection, auth, self.config)36        return model_del(Competition, self.database_connection, pkid)37class CompetitionSet(CssefRPCEndpoint):38    name = "Competition Set"39    rpc_name = "competitionset"40    menu_path = "competition.set"41    on_request_args = ['auth', 'pkid']42    def on_request(self, auth, pkid, **kwargs):43        authorize_access(self.database_connection, auth, self.config)44        return model_set(Competition, self.database_connection, pkid, **kwargs)45class CompetitionGet(CssefRPCEndpoint):46    name = "Competition Get"47    rpc_name = "competitionget"48    menu_path = "competition.get"49    on_request_args = ['auth']50    def on_request(self, auth, **kwargs):51        authorize_access(self.database_connection, auth, self.config)52        return model_get(Competition, self.database_connection, **kwargs)53class CompetitionStart(CssefRPCEndpoint):54    name = "Competition Start"55    rpc_name = "competitionstart"56    menu_path = "competition.start"57    takes_kwargs = False58    on_request_args = ['auth', 'pkid']59    def on_request(self, auth, pkid):60        authorize_access(self.database_connection, auth, self.config)61        competition = Competition.from_database(self.database_connection, pkid)62        competition.start()63        return EndpointOutput()64# ==================================================65# Team Endpoints66# ==================================================67class TeamAdd(CssefRPCEndpoint):68    name = "Team Add"69    rpc_name = "teamadd"70    menu_path = "team.add"71    on_request_args = ['auth', 'competition']72    def on_request(self, auth, competition, **kwargs):73        authorize_access(self.database_connection, auth, self.config)74        competition_obj = Competition.from_database(self.database_connection, competition)75        kwargs['competition'] = competition_obj.get_id()76        team = Team.from_dict(self.database_connection, kwargs)77        content = [team.as_dict()]78        return EndpointOutput(content = content)79class TeamDel(CssefRPCEndpoint):80    name = "Team Delete"81    rpc_name = "teamdel"82    menu_path = "team.del"83    takes_kwargs = False84    on_request_args = ['auth', 'competition', 'pkid']85    def on_request(self, auth, competition, pkid):86        authorize_access(self.database_connection, auth, self.config)87        return model_del(Team, self.database_connection, pkid)88class TeamSet(CssefRPCEndpoint):89    name = "Team Set"90    rpc_name = "teamset"91    menu_path = "team.set"92    on_request_args = ['auth', 'competition', 'pkid']93    def on_request(self, auth, competition, pkid, **kwargs):94        authorize_access(self.database_connection, auth, self.config)95        return model_set(Team, self.database_connection, pkid, **kwargs)96class TeamGet(CssefRPCEndpoint):97    name = "Team Get"98    rpc_name = "teamget"99    menu_path = "team.get"100    on_request_args = ['auth', 'competition']101    def on_request(self, auth, competition, **kwargs):102        authorize_access(self.database_connection, auth, self.config)103        return model_get(Team, self.database_connection, **kwargs)104# ==================================================105# Score Endpoints106# ==================================================107class ScoreAdd(CssefRPCEndpoint):108    name = "Score Add"109    rpc_name = "scoreadd"110    menu_path = "score.add"111    on_request_args = ['auth', 'competition']112    def on_request(self, auth, competition, **kwargs):113        authorize_access(self.database_connection, auth, self.config)114        competition_obj = Competition.from_database(self.database_connection, competition)115        kwargs['competition'] = competition_obj.get_id()116        score = Score.from_dict(self.database_connection, kwargs)117        content = [score.as_dict()]118        return EndpointOutput(content = content)119class ScoreDel(CssefRPCEndpoint):120    name = "Score Delete"121    rpc_name = "scoredel"122    menu_path = "score.del"123    takes_kwargs = False124    on_request_args = ['auth', 'competition', 'pkid']125    def on_request(self, auth, competition, pkid):126        authorize_access(self.database_connection, auth, self.config)127        return model_del(Score, self.database_connection, pkid)128class ScoreSet(CssefRPCEndpoint):129    name = "Score Set"130    rpc_name = "scoreset"131    menu_path = "score.set"132    on_request_args = ['auth', 'competition', 'pkid']133    def on_request(self, auth, competition, pkid, **kwargs):134        authorize_access(self.database_connection, auth, self.config)135        return model_set(Score, self.database_connection, pkid, **kwargs)136class ScoreGet(CssefRPCEndpoint):137    name = "Score Get"138    rpc_name = "scoreget"139    menu_path = "score.get"140    on_request_args = ['auth', 'competition']141    def on_request(self, auth, competition, **kwargs):142        authorize_access(self.database_connection, auth, self.config)143        return model_get(Score, self.database_connection, **kwargs)144# ==================================================145# Inject Endpoints146# ==================================================147class InjectAdd(CssefRPCEndpoint):148    name = "Inject Add"149    rpc_name = "injectadd"150    menu_path = "inject.add"151    on_request_args = ['auth', 'competition']152    def on_request(self, auth, competition, **kwargs):153        authorize_access(self.database_connection, auth, self.config)154        competition_obj = Competition.from_database(self.database_connection, competition)155        kwargs['competition'] = competition_obj.get_id()156        inject = Inject.from_dict(self.database_connection, kwargs)157        content = [inject.as_dict()]158        return EndpointOutput(content = content)159class InjectDel(CssefRPCEndpoint):160    name = "Inject Delete"161    rpc_name = "injectdel"162    menu_path = "inject.del"163    takes_kwargs = False164    on_request_args = ['auth', 'competition', 'pkid']165    def on_request(self, auth, competition, pkid):166        authorize_access(self.database_connection, auth, self.config)167        return model_del(Inject, self.database_connection, pkid)168class InjectSet(CssefRPCEndpoint):169    name = "Inject Set"170    rpc_name = "injectset"171    menu_path = "inject.set"172    on_request_args = ['auth', 'competition', 'pkid']173    def on_request(self, auth, competition, pkid, **kwargs):174        authorize_access(self.database_connection, auth, self.config)175        return model_set(Inject, self.database_connection, pkid, **kwargs)176class InjectGet(CssefRPCEndpoint):177    name = "Inject Get"178    rpc_name = "injectget"179    menu_path = "inject.get"180    on_request_args = ['auth', 'competition']181    def on_request(self, auth, competition, **kwargs):182        authorize_access(self.database_connection, auth, self.config)183        return model_get(Inject, self.database_connection, **kwargs)184# ==================================================185# Inject Response Endpoints186# ==================================================187class InjectResponseAdd(CssefRPCEndpoint):188    name = "Inject Response Add"189    rpc_name = "injectresponseadd"190    menu_path = "injectresponse.add"191    on_request_args = ['auth', 'competition']192    def on_request(self, auth, competition, **kwargs):193        authorize_access(self.database_connection, auth, self.config)194        competition_obj = Competition.from_database(self.database_connection, competition)195        kwargs['competition'] = competition_obj.get_id()196        injectResponse = InjectResponse.from_dict(self.database_connection, kwargs)197        content = [injectResponse.as_dict()]198        return EndpointOutput(content = content)199class InjectResponseDel(CssefRPCEndpoint):200    name = "Inject Response Delete"201    rpc_name = "injectresponsedel"202    menu_path = "injectresponse.del"203    takes_kwargs = False204    on_request_args = ['auth', 'competition', 'pkid']205    def on_request(self, auth, competition, pkid):206        authorize_access(self.database_connection, auth, self.config)207        return model_del(InjectResponse, self.database_connection, pkid)208class InjectResponseSet(CssefRPCEndpoint):209    name = "Inject Response Set"210    rpc_name = "injectresponseset"211    menu_path = "injectresponse.set"212    on_request_args = ['auth', 'competition', 'pkid']213    def on_request(self, auth, competition, pkid, **kwargs):214        authorize_access(self.database_connection, auth, self.config)215        return model_set(InjectResponse, self.database_connection, pkid, **kwargs)216class InjectResponseGet(CssefRPCEndpoint):217    name = "Inject Response Get"218    rpc_name = "injectresponseget"219    menu_path = "injectresponse.get"220    on_request_args = ['auth', 'competition']221    def on_request(self, auth, competition, **kwargs):222        authorize_access(self.database_connection, auth, self.config)223        return model_get(InjectResponse, self.database_connection, **kwargs)224# ==================================================225# Incident Endpoints226# ==================================================227class IncidentAdd(CssefRPCEndpoint):228    name = "Incident Add"229    rpc_name = "incidentadd"230    menu_path = "incident.add"231    on_request_args = ['auth', 'competition']232    def on_request(self, auth, competition, **kwargs):233        authorize_access(self.database_connection, auth, self.config)234        competition_obj = Competition.from_database(self.database_connection, competition)235        kwargs['competition'] = competition_obj.get_id()236        incident = Incident.from_dict(self.database_connection, kwargs)237        content = [incident.as_dict()]238        return EndpointOutput(content = content)239class IncidentDel(CssefRPCEndpoint):240    name = "Incident Del"241    rpc_name = "incidentdel"242    menu_path = "incident.del"243    takes_kwargs = False244    on_request_args = ['auth', 'competition', 'pkid']245    def on_request(self, auth, competition, pkid):246        authorize_access(self.database_connection, auth, self.config)247        return model_del(Incident, self.database_connection, pkid)248class IncidentSet(CssefRPCEndpoint):249    name = "Incident Set"250    rpc_name = "incidentset"251    menu_path = "incident.set"252    on_request_args = ['auth', 'competition', 'pkid']253    def on_request(self, auth, competition, pkid, **kwargs):254        authorize_access(self.database_connection, auth, self.config)255        return model_set(Incident, self.database_connection, pkid, **kwargs)256class IncidentGet(CssefRPCEndpoint):257    name = "Incident Get"258    rpc_name = "incidentget"259    menu_path = "incident.get"260    on_request_args = ['auth', 'competition']261    def on_request(self, auth, competition, **kwargs):262        authorize_access(self.database_connection, auth, self.config)263        return model_get(Incident, self.database_connection, **kwargs)264# ==================================================265# Incident Response Endpoints266# ==================================================267class IncidentResponseAdd(CssefRPCEndpoint):268    name = "Incident Response Add"269    rpc_name = "incidentresponseadd"270    menu_path = "incidentresponse.add"271    on_request_args = ['auth', 'competition']272    def on_request(self, auth, competition, **kwargs):273        authorize_access(self.database_connection, auth, self.config)274        competition_obj = Competition.from_database(self.database_connection, competition)275        kwargs['competition'] = competition_obj.get_id()276        incident_response = IncidentResponse.from_dict(self.database_connection, kwargs)277        content = [incident_response.as_dict()]278        return EndpointOutput(content = content)279class IncidentResponseDel(CssefRPCEndpoint):280    name = "Incident Response Delete"281    rpc_name = "incidentresponsedel"282    menu_path = "incidentresponse.del"283    takes_kwargs = False284    on_request_args = ['auth', 'competition', 'pkid']285    def on_request(self, auth, competition, pkid):286        authorize_access(self.database_connection, auth, self.config)287        return model_del(IncidentResponse, self.database_connection, pkid)288class IncidentResponseSet(CssefRPCEndpoint):289    name = "Incident Response Set"290    rpc_name = "incidentresponseset"291    menu_path = "incidentresponse.set"292    on_request_args = ['auth', 'competition', 'pkid']293    def on_request(self, auth, competition, pkid, **kwargs):294        authorize_access(self.database_connection, auth, self.config)295        return model_del(IncidentResponse, self.database_connection, pkid)296class IncidentResponseGet(CssefRPCEndpoint):297    name = "Incident Response Get"298    rpc_name = "incidentresponseget"299    menu_path = "incidentresponse.get"300    on_request_args = ['auth', 'competition']301    def on_request(self, auth, competition, **kwargs):302        authorize_access(self.database_connection, auth, self.config)303        return model_get(IncidentResponse, self.database_connection, **kwargs)304# ==================================================305# Scoring Engine Endpoints306# ==================================================307class ScoringEngineAdd(CssefRPCEndpoint):308    name = "Scoring Engine Add"309    rpc_name = "scoringengineadd"310    menu_path = "scoringengine.add"311    on_request_args = ['auth']312    def on_request(self, auth, **kwargs):313        authorize_access(self.database_connection, auth, self.config)314        scoringEngine = ScoringEngine.from_dict(self.database_connection, kwargs)315        content = [scoringEngine.as_dict()]316        return EndpointOutput(content = content)317class ScoringEngineDel(CssefRPCEndpoint):318    name = "Scoring Engine Delete"319    rpc_name = "scoringenginedel"320    menu_path = "scoringengine.del"321    takes_kwargs = False322    on_request_args = ['auth', 'pkid']323    def on_request(self, auth, pkid):324        return model_del(ScoringEngine, self.database_connection, pkid)325class ScoringEngineSet(CssefRPCEndpoint):326    name = "Scoring Engine Set"327    rpc_name = "scoringengineset"328    menu_path = "scoringengine.set"329    on_request_args = ['auth', 'pkid']330    def on_request(self, auth, pkid, **kwargs):331        return model_set(ScoringEngine, self.database_connection, pkid, **kwargs)332class ScoringEngineGet(CssefRPCEndpoint):333    name = "Scoring Engine Get"334    rpc_name = "scoringengineget"335    menu_path = "scoringengine.get"336    on_request_args = ['auth']337    def on_request(self, auth, **kwargs):...requesthandlers.py
Source:requesthandlers.py  
...16        """17        super(TheHiveApiRequestCallback, self).__init__()18        self._dxl_client = dxl_client19        self._thehive_client = thehive_client20    def on_request(self, request):21        """22        Invoked when a request message is received.23        :param dxlclient.message.Request request: The request message24        """25        logger.info("Request received on topic: '%s' with payload: '%s'",26                    request.destination_topic,27                    MessageUtils.decode_payload(request))28    def _pop_attribute_from_request(self, request, attr_name):29        """30        Pop the value for a named attribute from the supplied request JSON31        and return the remaining request body.32        :param request:33        :param attr_name:34        :return:35        :raises ValueError: if the named attribute does not appear in the36            request.37        :return: A tuple containing two elements: the value associated with38            the attr_name parameter and the request body (minus the attr_name39            attribute and its associated value), converted to a dict.40        :rtype: tuple41        """42        try:43            request_body = MessageUtils.json_payload_to_dict(request)44            attr_value = request_body.pop(attr_name, None)45            if not attr_name:46                raise ValueError("Attribute {} is missing".format(attr_name))47        except Exception as ex:48            request_body = {}49            attr_value = None50            error_str = str(ex)51            logger.exception("Error handling request: %s", error_str)52            res = ErrorResponse(request,53                                error_message=MessageUtils.encode(error_str))54            self._dxl_client.send_response(res)55        return (attr_value, request_body)56class TheHiveCreateCaseRequestCallback(TheHiveApiRequestCallback):57    """58    Request callback used to invoke TheHive REST API for case/create59    DXL requests.60    """61    def on_request(self, request):62        """63        Invoked when a request message is received.64        :param dxlclient.message.Request request: The request message65        """66        super(TheHiveCreateCaseRequestCallback, self).on_request(request)67        self._thehive_client.post(request, "/api/case")68class TheHiveCreateCaseTaskRequestCallback(TheHiveApiRequestCallback):69    """70    Request callback used to invoke TheHive REST API for case/task/create71    DXL requests.72    """73    def on_request(self, request):74        """75        Invoked when a request message is received.76        :param dxlclient.message.Request request: The request message77        """78        super(TheHiveCreateCaseTaskRequestCallback, self).on_request(request)79        case_id, request_body = self._pop_attribute_from_request(request,80                                                                 "caseId")81        if case_id:82            self._thehive_client.post(83                request, "/api/case/{}/task".format(case_id), request_body)84class TheHiveCreateCaseObservableRequestCallback(TheHiveApiRequestCallback):85    """86    Request callback used to invoke TheHive REST API for case/observable/create87    DXL requests.88    """89    def on_request(self, request):90        """91        Invoked when a request message is received.92        :param dxlclient.message.Request request: The request message93        """94        super(TheHiveCreateCaseObservableRequestCallback, self).on_request(95            request)96        case_id, request_body = self._pop_attribute_from_request(request,97                                                                 "caseId")98        if case_id:99            self._thehive_client.post(100                request, "/api/case/{}/artifact".format(case_id), request_body)101class TheHiveGetCaseRequestCallback(TheHiveApiRequestCallback):102    """103    Request callback used to invoke TheHive REST API for case/get DXL requests.104    """105    def on_request(self, request):106        """107        Invoked when a request message is received.108        :param dxlclient.message.Request request: The request message109        """110        super(TheHiveGetCaseRequestCallback, self).on_request(request)111        case_id = self._pop_attribute_from_request(request, "id")[0]112        if case_id:113            self._thehive_client.get(request, "/api/case/{}".format(case_id))114class TheHiveGetCaseTaskRequestCallback(TheHiveApiRequestCallback):115    """116    Request callback used to invoke TheHive REST API for case/task/get DXL117    requests.118    """119    def on_request(self, request):120        """121        Invoked when a request message is received.122        :param dxlclient.message.Request request: The request message123        """124        super(TheHiveGetCaseTaskRequestCallback, self).on_request(request)125        task_id = self._pop_attribute_from_request(request, "id")[0]126        if task_id:127            self._thehive_client.get(request,128                                     "/api/case/task/{}".format(task_id))129class TheHiveGetCaseObservableRequestCallback(TheHiveApiRequestCallback):130    """131    Request callback used to invoke TheHive REST API for case/observable/get132    DXL requests.133    """134    def on_request(self, request):135        """136        Invoked when a request message is received.137        :param dxlclient.message.Request request: The request message138        """139        super(TheHiveGetCaseObservableRequestCallback, self).on_request(request)140        observable_id = self._pop_attribute_from_request(request, "id")[0]141        if observable_id:142            self._thehive_client.get(request,143                                     "/api/case/artifact/{}".format(144                                         observable_id))145class TheHiveSearchCaseRequestCallback(TheHiveApiRequestCallback):146    """147    Request callback used to invoke TheHive REST API for case/search DXL148    requests.149    """150    def on_request(self, request):151        """152        Invoked when a request message is received.153        :param dxlclient.message.Request request: The request message154        """155        super(TheHiveSearchCaseRequestCallback, self).on_request(request)156        self._thehive_client.post(request, "/api/case/_search")157class TheHiveSearchCaseTaskRequestCallback(TheHiveApiRequestCallback):158    """159    Request callback used to invoke TheHive REST API for case/task/search160    DXL requests.161    """162    def on_request(self, request):163        """164        Invoked when a request message is received.165        :param dxlclient.message.Request request: The request message166        """167        super(TheHiveSearchCaseTaskRequestCallback, self).on_request(request)168        self._thehive_client.post(request, "/api/case/task/_search")169class TheHiveSearchCaseObservableRequestCallback(TheHiveApiRequestCallback):170    """171    Request callback used to invoke TheHive REST API for case/observable/search172    DXL requests.173    """174    def on_request(self, request):175        """176        Invoked when a request message is received.177        :param dxlclient.message.Request request: The request message178        """179        super(TheHiveSearchCaseObservableRequestCallback, self).on_request(request)180        self._thehive_client.post(request, "/api/case/artifact/_search")181class TheHiveCreateAlertRequestCallback(TheHiveApiRequestCallback):182    """183    Request callback used to invoke TheHive REST API for alert/create DXL184    requests.185    """186    def on_request(self, request):187        """188        Invoked when a request message is received.189        :param dxlclient.message.Request request: The request message190        """191        super(TheHiveCreateAlertRequestCallback, self).on_request(request)192        self._thehive_client.post(request, "/api/alert")193class TheHiveGetAlertRequestCallback(TheHiveApiRequestCallback):194    """195    Request callback used to invoke TheHive REST API for alert/get DXL requests.196    """197    def on_request(self, request):198        """199        Invoked when a request message is received.200        :param dxlclient.message.Request request: The request message201        """202        super(TheHiveGetAlertRequestCallback, self).on_request(request)203        case_id = self._pop_attribute_from_request(request, "id")[0]204        if case_id:205            self._thehive_client.get(request, "/api/alert/{}".format(case_id))206class TheHiveSearchAlertRequestCallback(TheHiveApiRequestCallback):207    """208    Request callback used to invoke TheHive REST API for alert/search DXL209    requests.210    """211    def on_request(self, request):212        """213        Invoked when a request message is received.214        :param dxlclient.message.Request request: The request message215        """216        super(TheHiveSearchAlertRequestCallback, self).on_request(request)...test_http1.py
Source:test_http1.py  
...9        super(TestConnection, self).setUp()10        self.asyncSetUp()11        self.request = None12        self.response = None13    def on_request(self, request):14        self.request = request15    def on_response(self, response):16        self.response = response17    @gen_test18    def asyncSetUp(self):19        self.client_stream, self.server_stream = yield self.create_iostream_pair()20        self.addCleanup(self.client_stream.close)21        self.addCleanup(self.server_stream.close)22    @gen_test23    def test_on_request(self):24        client_conn = Connection(h11.CLIENT, self.client_stream)25        client_conn.send_request(HttpRequest(26            method="GET", path="/", headers=[("Host", "localhost")]))27        server_conn = Connection(28            h11.SERVER, self.server_stream, on_request=self.on_request)29        yield server_conn.read_bytes()30        self.assertIsNotNone(self.request)31        self.assertEqual(self.request.headers,32                         HttpHeaders([("host", "localhost")]))33        self.assertEqual(self.request.method, "GET")34        self.assertEqual(self.request.path, "/")35        self.assertEqual(self.request.version, "HTTP/1.1")36    @gen_test37    def test_on_response(self):...views.py
Source:views.py  
...54        ):55            view = cls()56            view.request_data = request_data57            view.user = user58            return await view.on_request()59        return wrapper60    @classmethod61    def _as_anonymous_view(cls):62        async def wrapper(63                request_data: dict = Depends(cls.get_request)64        ):65            view = cls()66            view.request_data = request_data67            return await view.on_request()68        return wrapper69    async def on_request(self):70        raise NotImplemented()71    def raise_404(self, detail=None):72        raise HTTPException(status_code=404, detail=detail)73    def raise_400(self, detail=None):74        raise HTTPException(status_code=400, detail=detail)75    async def get_object(self):76        model = await crud.get_or_none(77            model_class=self.model_class,78            **self.request_data79        )80        return model81    async def get_serializer(self, model):82        if self.serializer_class is None:83            self.serializer_class = DefaultSerializer84        serializer = await self.serializer_class.get_instance(85            model=model,86            **self.request_data87        )88        return serializer89class RetrieveAPIView(APIView):90    http_methods = ["get"]91    @staticmethod92    def get_request(model_id: int = Path(...)) -> dict:93        return {"id": model_id}94    async def on_request(self):95        model = await self.get_object()96        if model is None:97            self.raise_404()98        serializer = await self.get_serializer(model)99        response = await serializer.get()100        return response101class UpdateAPIView(APIView):102    http_methods = ["patch", "put"]103    lookup_kwarg = "id"104    @staticmethod105    def get_request(model_id: int = Path(...)):106        return {"id": model_id}107    async def get_object(self):108        model = await crud.get_or_none(109            model_class=self.model_class,110            **{self.lookup_kwarg: self.request_data.get(self.lookup_kwarg)}111        )112        return model113    async def on_request(self):114        model = await self.get_object()115        if model is None:116            self.raise_404()117        serializer = await self.get_serializer(model)118        response = await serializer.update()119        return response120class CreateAPIVIew(APIView):121    http_methods = ["post"]122    async def on_request(self):123        serializer = await self.get_serializer(None)124        response = await serializer.create()125        return response126class DestroyAPIView(APIView):127    http_methods = ["delete"]128    lookup_kwarg = "id"129    @staticmethod130    def get_request(model_id: int = Path(...)):131        return {"id": model_id}132    async def get_object(self):133        model = await crud.get_or_none(134            model_class=self.model_class,135            **{self.lookup_kwarg: self.request_data.get(self.lookup_kwarg)}136        )137        return model138    async def on_request(self):139        model = await self.get_object()140        if model is None:141            self.raise_404()142        serializer = await self.get_serializer(None)143        response = await serializer.delete()...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
