Faits : A. A.a. Dès le mois d'avril 2014, A._ SA (ci-après: la mandante) a chargé B._ Sàrl (ci-après: la mandataire), société active dans la protection des biens et des personnes, de la protection de la famille du frère (personnalité ukrainienne exposée) de son administratrice, en particulier du fils de celui-ci et parfois de son épouse. La mandataire a affecté à la protection de la famille en question deux agents de sécurité armés, à savoir son associé gérant, C._, et un employé, D._. Le 21 mai 2015, la mandante a résilié le contrat avec effet au 1 er juin 2015. A.b. Durant la période d'avril 2014 à janvier 2015, la mandataire a établi ses factures sur la base d'un tarif horaire, alors que de février à mai 2015, la mandataire a facturé un forfait, avec supplément pour les heures supplémentaires, comme proposé par elle le 16 mars 2015 et accepté par la mandante le 4 mai 2015. Les factures adressées par la mandataire pour les mois d'avril 2014 à avril 2015 (d'un total de 316'092 fr. 93) ont été entièrement payées; si les factures d'avril à décembre 2014 ont été payées sans aucune contestation, les factures de janvier à avril 2015 n'ont, dans un premier temps, été payées qu'à 50% le 8 mai 2015 (74'730 fr.), le solde de 50% (74'730 fr.) ayant été payé le 29 mai 2015. La facture de mai 2015 du montant de 22'317 fr. 34 n'a pas été payée. B. La mandante a ouvert action en réduction des honoraires de la mandataire (payés à hauteur de 316'092 fr. 93) de 50% correspondant à son estimation des heures travaillées par l'agent D._ et en remboursement du trop-payé de 50% (158'046 fr. 40), sous déduction de la moitié de la facture de mai 2015 en souffrance, soit au total 146'887 fr. 73 (158'046 fr. 40 - 11'158 fr. 67 [1/2 de 22'317 fr. 34]). En bref, la mandante invoque la violation par la mandataire de ses obligations contractuelles au motif que les parties étaient convenues que le port d'une arme à feu était une condition essentielle du contrat et que la mandataire a affecté à la protection son employé, l'agent D._, qui, bien que porteur d'une arme à feu lors des missions effectuées, ne possédait pas un permis de port d'arme, ni une carte de légitimation (d'agent de sécurité). Elle estime qu'elle ne doit pas payer les heures effectuées par D._ et, par conséquent, ne doit pas le 50% des honoraires facturés pour la période d'avril 2014 à mai 2015. De son côté, la mandataire a ouvert action en paiement de ses honoraires à 100% pour le mois de mai 2015, ainsi que d'une indemnité pour résiliation en temps inopportun. La question de cette indemnité n'est plus litigieuse. Dans ses dernières conclusions, la mandante a conclu au paiement de 155'857 fr. 60, sous déduction de 22'317 fr. (la facture de mai 2015 pour les heures effectuées par l'agent C._ n'étant plus contestée). Les causes ont été jointes. Par jugement du 21 juin 2018, le Tribunal de première instance a notamment rejeté la demande de la mandante et, notamment, admis la demande de la mandataire en paiement de ses honoraires pour le mois de mai 2015 et condamné la mandante à payer à la mandataire le montant de 22'317 fr. 30. Statuant sur l'appel de la mandante, la Chambre civile de la Cour de justice l'a rejeté et a confirmé le jugement attaqué. En bref, elle a constaté que la mandante persistait à réclamer la réduction des honoraires de 50% (146'887 fr. 70 avec intérêts) alors que, dans ses dernières conclusions devant le tribunal de première instance, elle concluait au remboursement de 133'540 fr. 60 avec intérêts. Traitant les deux griefs soulevés par la mandante, la cour cantonale a retenu que la mandataire ne s'était pas rendue coupable d'exécution défectueuse du mandat. Tout d'abord, il ne résultait pas de la procédure que les parties avaient convenu que les agents porteraient une arme à feu et, quoi qu'il en soit, les deux agents ayant effectué des missions étaient porteurs d'une arme à feu, même si D._ n'avait plus possédé de permis de port d'arme et de carte de légitimation valides dès le printemps 2015. L'essentiel des services avait été assuré par l'agent et associé gérant C._. La qualité et l'adéquation du travail de l'agent D._ n'avaient jamais été remises en cause par la mandataire, qui avait même envisagé de l'engager directement et qui avait acquitté les factures sans formuler de réserve quant au travail fourni. Ensuite, elle a considéré qu'il ne pouvait être question de retrancher entièrement de la rémunération les heures travaillées par l'agent D._ puisque la prestation de celui-ci n'avait pas été totalement inutile ou inutilisable et qu'il était établi que son travail avait été effectué à la satisfaction de la mandante. C. Contre cet arrêt qui lui a été notifié le 12 août 2019, la mandante a interjeté un recours en matière civile au Tribunal fédéral le 16 septembre 2019, concluant à sa réforme en ce sens que la mandataire soit condamnée à lui rembourser le montant de 133'540 fr. 60 avec intérêts à 5% l'an dès le 15 octobre 2015; subsidiairement elle conclut à son annulation et au renvoi de la cause à la cour cantonale pour nouvelle décision dans le sens des considérants. La mandataire conclut au rejet du recours, dans la mesure où il est recevable, et à la confirmation du jugement attaqué. Les parties n'ont pas déposé d'observations complémentaires. La cour cantonale se réfère aux considérants de son arrêt.